基于一个问题,在此之前,我问,我怎么有资格这串...定义自定义对象和函数在JavaScript(第2部分)
"MyCustomObject.prototype.foo.bar"
这样:
window['MyCustomObject']['prototype']['foo']['bar']
在对象形式? (它不一定符合...
"window['MyCustomObject']['prototype']['foo']['bar']"
... as a string!)。
作为参考,请考虑以下...(代码是错误的...它需要固定(不EVAL关键字))
var fn = "MyCustomObject.prototype.foo.bar";
var ptr = fn.split('.');
var ptrPath = 'window'
for(var index = 0; index < ptr.length; index++) {
ptrPath += '[\'' + ptr[index] + '\']';
}
ptrPath = function() {
alert("Hello");
}
要解决此;
var inst = new MyObject();
inst.foo.bar(); //alerts...."Hello"
您的解决方案是否需要'MyCustomObject.foo.bar'才能实现,然后才能返回非undefined的内容? - 基本上我想要一个函数来限定字符串(在本例中)属性,然后可以赋值(或实现)属性,但有时可能该属性不存在于第一位,因此函数赋值将是该属性第一次被定义......我希望这是有道理的!? – series0ne
@activwerx不,它只会在它已经被定义时才起作用 – jbabey
:-(有什么办法可以做到吗?例如,我可以做window ['CustomObject'] = function(){};然后我将拥有一个名为CustomObject的可构造对象,但我希望能够对嵌套属性做同样的工作。 – series0ne