この例を見てみましょう:
var x = 3;
var obj = {
x:2,
test: function(){
var x = 1;
console.log(this.x);
}
};
そして、この関数を呼び出すにはさまざまな方法があります。
obj.test(); // line 1
obj.test.call(null); // line 2
(obj.test)(); // line 3
(obj.test = obj.test)(); // line 4
(obj.test || obj.test)(); // line 5
(obj.test && obj.test)(); // line 6
(obj.test, obj.test)(); // line 7
最初の 3 行は理解できますが、さらに何が起こっているのか説明してもらえますか (4 行目から 7 行目)。それは紛らわしいです。