Javascript 当我将对象指定给对象的属性时,该属性是否成为对象?如果是,如何通过第二个对象访问第一个对象?
我把这个问题分为几个子问题,因为它们都是相关的,并且构成了我不理解的部分 首先也是最重要的一点,当我将一个对象指定给一个属性时,该属性是否也会成为一个对象 例如:Javascript 当我将对象指定给对象的属性时,该属性是否成为对象?如果是,如何通过第二个对象访问第一个对象?,javascript,Javascript,我把这个问题分为几个子问题,因为它们都是相关的,并且构成了我不理解的部分 首先也是最重要的一点,当我将一个对象指定给一个属性时,该属性是否也会成为一个对象 例如: var object1=新对象(); object1.color=“红色”; var newobject={ “obname”:object1 }您在这里问了几个问题,所以我将尝试一一回答 var object1=新对象(); object1.color=“红色”; var newobject={ “obname”:object1
var object1=新对象();
object1.color=“红色”;
var newobject={
“obname”:object1
}
您在这里问了几个问题,所以我将尝试一一回答
var object1=新对象();
object1.color=“红色”;
var newobject={
“obname”:object1
}
您可以简单地认为obname等同于object1(它是一个对象)
当您访问object1属性(在本例中,属性为color)时,您应该获得如下属性值:
object1.color,返回值“红色”
- 以obname为目标返回[object]。为什么? 因为obname是一个对象
var newobject = {
"obname": { "color" : "red"}
}
- 目标obname.object1返回未定义的。为什么?
- 目标obname.object1.color返回错误。为什么?
回答为什么颜色是obname的属性的问题;这是因为您已将obname指定给object1,因此它们是相同的“颜色不是obname的属性”-为什么不?
obname
不是对象。它是一个属性名,指向分配给它的任何值。在本例中,对象的属性名为color
。它不是自由浮动属性,它只存在于newobject
中。这就是为什么您必须以newobject.obname.color
const object2=newobject.obname;console.log(object2.color)。提示`object2===object1`。您了解对象是什么吗(一般来说,在OOP中,特别是在JS中)?@SergioTulentsevcolor
被分配给第一个对象object1
。如果obname
不是对象,如何通过obname
访问另一个对象的属性object1
?我正在将对象object1
分配给属性obname
。那么,这是否意味着object1
的所有属性都不是obname
属性的属性?为什么呢?您可以简单地认为obname等同于object1(它是一个对象)。但我不明白它们怎么是等价物?我是否没有将object1
分配给obname
?当我将object1
分配给obname
时,我是否将object1
的属性和值以及可能的方法分配给obname
?我没想到它是这样工作的。@ScottMarcus如果它有一个对象的引用,为什么我可以直接访问该对象的属性而不引用object1
本身?@TaishoMori查看我最近对您上述其他评论的回复。但我的目标是object1
的属性color
,而不是名为object1
的属性?还有,最后一个问题呢?为什么obname.color
返回该属性的值,因为color
没有作为属性分配给obname
?我以为obname
只是引用了对象object1
,那么为什么我可以通过obname
访问object1
的属性呢?说obname.object1.color
就不能访问属性color
,感觉非常不合逻辑,但要访问它,可以省略object1
,只说obname.color
,尽管color
是object1
的属性而不是obname
@taishoriobname
指向object1
对象,因此,当您说obname
时,您可以访问object
拥有的所有内容,例如它的color
属性。但是obname
没有名为object1
的属性,因此不能键入obname.object1
,因为object1
不是obname
@taishori中的属性名。如果你想从我妹妹萝莉那里找到什么,你可以直接去找她说“萝莉,你最喜欢什么颜色?”(即Lori.color
)。但是,如果你想通过我获得这些信息,我会以不同的方式引用我妹妹。那可能是Scott.sister.color
,其中sister
只是对Lori
的引用。但是说Scott.Lori.color
是错误的,因为我妹妹不是我的一部分。@TaishoMoriScott.Lori
意味着Scott
有一个名为Lori
的属性,这没有多大意义Lori
是我的妹妹
,我和她有一种关系,这是一个属性在这里建立的,一种关系或指向其他完全独立事物的指针。
alert(newobject.obname.color);