基於一個問題,在此之前,我問,我怎麼有資格這串...定義自定義對象和函數在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