オブジェクトを作成する場合
var O = { A : {}, B : {}}
次に設定しました
O.A.foo = function() { }
O.B.foo = function() { }
その親がまたはfoo()
であるかどうかを調べるにはどうすればよいですか?A
B
オブジェクトを作成する場合
var O = { A : {}, B : {}}
次に設定しました
O.A.foo = function() { }
O.B.foo = function() { }
その親がまたはfoo()
であるかどうかを調べるにはどうすればよいですか?A
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 */ }