javascript - 我无法将对象属性作为函数获取

标签 javascript object properties nested

光环伙计们..我是这个网站的新手,所以任何帮助将不胜感激。如果我的问题已存在于另一个主题中,请告诉我。我有以下问题..我创建一个具有另一个对象的对象。子对象有一些属性。每当我迭代子对象来获取属性时,似乎所有属性都是字符串类型。以下是我的代码:

    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/

相关文章:

java - 强制使 JavaFX 属性失效

javascript - Azure 应用服务在 URL 中添加 '/'

python - 有没有办法让numpy矩阵来存储对象?

javascript - 我有一个带有数据属性的 JSON 文件,其中包含包含有关冠军信息的对象。如何获得具有特定KEY属性的冠军?

javascript - 如何循环访问对象属性?

javascript - 将 `__proto__` 用作使用 `Object.create(null)` 创建的对象的属性名称是否安全?

ios - 观察属性或覆盖 setter 更好吗?

javascript - 如何在 Angular 形式的日期选择器中验证用户输入?

Javascript:单击一个 Accordion 时关闭所有 Accordion ?

javascript - 如何在 PHP 中编辑数组中的部分字符串值并在 Javascript 中使用它?