光环伙计们..我是这个网站的新手,所以任何帮助将不胜感激。如果我的问题已存在于另一个主题中,请告诉我。我有以下问题..我创建一个具有另一个对象的对象。子对象有一些属性。每当我迭代子对象来获取属性时,似乎所有属性都是字符串类型。以下是我的代码:
var obj = {}
obj.x = function(){
this.y = function(){
}
}
for(var a in obj){
alert(typeof(a) === "string"); //this will be true
alert(a.hasOwnProperty("y")); //this will be false
}
我用chrome来测试这个。难道 typeof(a) === "function"为 true 并且 a.hasOwnProperty("y") 也为 true 吗? 我在这里看不到自己的错误。我很迷失......有什么想法吗?
最佳答案
obj.x
是一个函数,如果你想使用该函数作为对象的构造函数尝试
obj.x = new (function(){
this.y = function(){
}
})();
你的测试也是错误的,a
只是一个字符串,所以它当然不会有y
属性。
for(var a in obj){
alert(typeof(obj[a]) === "object");
alert(obj[a].hasOwnProperty("y"));
}
关于javascript - 我无法将对象属性作为函数获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15602806/