如果我创建一个对象
var O = { A : {}, B : {}}
然后我设置
O.A.foo = function() { }
O.B.foo = function() { }
如何foo()
找出它的父母是A
or B
?
如果我创建一个对象
var O = { A : {}, B : {}}
然后我设置
O.A.foo = function() { }
O.B.foo = function() { }
如何foo()
找出它的父母是A
or B
?
this
是关键:
O.A.foo = O.B.foo = function() {
if (this === O.A) {
// it's A
}
else if (this === O.B) {
// it's B
}
}
http://jsfiddle.net/mattball/2nhnH/
然而,这似乎有点代码味道。
也许您的问题还有更多,因为答案是函数已经知道,因为它们是单独的函数。
O.A.foo = function() { /* this is called on A */ }
O.B.foo = function() { /* this is called on B */ }