この記事では主にjsのカンマ演算子の解析を紹介しますが、これは参考値があるのでシェアしますので、困っている方は参考にしてください
function testFunc () { var a = 0; return (a += 1, a); // 等价于return ++x; } console.log((1, 2)); // console 2 console.log((a = b = 3, c = 4)); // console 4
var obj = { myFunc: function () { console.log(this === window); console.log(this === obj); } } obj.myFunc(); // false true (0,obj.myFunc)(); // true
関数 foo では、foo は a のメソッドであるため、これは a を指します。したがって、this===window が false を返すことがわかります。
ただし、(0,obj.myFunc)() を呼び出すと、式 (0,a.foo) は各オペランドを (左から右に) 評価し、最後のオペランドの値を返します。言い換えると、(0, a.foo) は次と同等です:
function(){ console.log(this === window);//且这个函数不再附加到任何东西,它this是全局对象window,所以输出的是true。
以上がjsのカンマ演算子の解析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。