這篇文章主要介紹了關於js中逗號操作符的解析,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
概述:逗號運算子對它的每個運算元求值(從左到右),並傳回最後一個運算元的值。當你想要在期望一個表達式的位置包含多個表達式時,可以使用逗號運算子。這個運算子最常用的情況是:for 迴圈中提供多個參數。需要注意的是,var 語句中的逗號不是逗號操作符,因為它不是存在於一個表達式中。
案例:
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
輸出的結果為 false-true ture。
在函數foo中,this指向的是a,因為foo是a的方法。所以this===window返回false就能理解了。
但是呼叫(0,obj.myFunc)(),表達式(0,a.foo)將評估它的每個運算元(從左到右),並傳回最後一個運算元的值。換句話說,(0,a.foo)等於:
function(){ console.log(this === window);//且这个函数不再附加到任何东西,它this是全局对象window,所以输出的是true。
以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網!
相關推薦:
#以上是js中逗號運算子的解析的詳細內容。更多資訊請關注PHP中文網其他相關文章!