以这段代码为例,忘记代码中实际发生的事情,想象一下这是任何js代码,我只选择了这个,因为它有点"很长&# 34;:
document.getElementById("myCanvas").getContext("2d").fillStyle="#FF0000";
对象是否在左边"父母"右边的物体?或者他们都是"无关"而且只是"培养"缺少一个更好的词是另一个?
在编程意义上,我并不是说“#34; parent"和孩子" (比如xml或html)我的意思是它类似于一个真实的"孩子"和一个真实的父母"因为父母对孩子是独一无二的,而孩子对父母来说是独一无二的。这就是我加入" foster"部分(它们不一定是血液相关的......它们也不是永久地附着在左边的物体上)。
换句话说,右边的对象是否只是左边对象的子集?或者它们有时是共享的,有时不会被左边的其他对象共享?
答案 0 :(得分:3)
在 general 中,不,没有排他性。考虑:
var a = {};
var b = {};
var c = {};
a.foo = c;
b.bar = c;
a
和b
现在都有引用c
的属性。就此而言:
c.a = a;
c.b = b;
现在c
的属性引用回a
和b
。如果您愿意,a
可以拥有引用b
的属性。 (或b
至a
。或两者兼而有之。)
在您给出的具体示例中,任何其他画布都不太可能使用画布的2D上下文。但这是一个画布的东西,而不是JavaScript的东西。同样,在客户端JavaScript中,我们经常处理DOM元素,并且DOM具有父/子关系。但这是一个DOM的东西,而不是JavaScript的东西。
答案 1 :(得分:0)
您所描述的是DOM对象。 DOM具有分层结构。
因此,例如,如果您调用方法object.getElementsByTagName
,它将只返回object
的子项。所以在你的例子中,右边的对象是左边的对象,是的。
但是javascript对象通常没有理由拥有任何类型的层次结构。
即obj1.getSomething().getSomethingElse().returnProperty()
不必返回与obj1
有任何关系的属性。