基础
- 一个
toplevelOBJ
对象在整个应用程序中用作this.toplevelOBJ
,我可以在其中访问它的属性,例如this.toplevelOBJ.mapArea.coordX
. - 其中
ClassB
有一个函数调用blink
,它等待来自外部源的信号。 - 在
ClassC
我需要捕获这个信号,所以我设置了一个函数,capture
以ClassC
检索由发送的信号ClassB
问题
当通过capture()
函数发送到时ClassC
,
"this"
inthis.toplevelOBJ
不再指的是toplevelOBJ
,而是ClassC
。
因此,我通过函数this.toplevelOBJ
作为参数发送,但在接收时,我不确定是否正在调用来自的函数:,而我可以访问它的属性:toplevel
capture()
toplevelOBJ
toplevel.update()
toplevel.mapArea.coordX
问题
通过 anObject
作为参数发送时,是否Object
完全相同?因为当我检查 时Object
,我在 下找到了update()
函数toplevel.__proto__.__proto__
,而我立即找到了它的属性:toplevel.mapArea
代码
// Class in which I am sending the object
var ClassB = exports.ClassB = ClassA.extend({
blink: function(key, value) {
ClassC.prototype.capture(key, value, this.toplevelOBJ);
}
});
// Class in which I am receiving the object
var ClassC = exports.ClassC = ClassA.extend({
capture: function(key, value, toplevel) {
/* Run Function of toplevel */
}
});