我试图将变量传递给父对象的子对象,但它返回未定义。 (显然我不确定 JS 对象的作用域是如何工作的)。
var parent = {
pid: '565',
child: {
cid: this.pid + '_child_789',
sayHello: function(){
alert('My id is ' + this.cid);
}
}
}
调用 parent.child.sayHello()
将 this.cid
记录为未定义。
我(错误地)认为子进程会继承 pid 属性,并且可以由 this.pid
引用,但事实并非如此。
有没有办法在不硬编码 pid 值的情况下做到这一点?
我知道我可以在创建对象后执行parent.child.cid =parent.pid + '_child_789'
,但这对我来说不可扩展或不实用。
最佳答案
您无法访问对象文字中的属性。我想更详细地讨论,但是,这个问题已经被回答过好几次了。请检查以下问题:
JavaScript: Access own Object Property inside Array Literal
Can a JavaScript object property refer to another property of the same object?
关于javascript - 如何将javascript对象值传递给其 "child"对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23258380/