逗號操作符(0,function)()

無聊之際看了一下antd的源碼讹躯,發(fā)現(xiàn)一段代碼如下:

var ButtonTypes = (0, _type.tuple)('default', 'primary', 'ghost', 'dashed', 'danger', 'link');
var ButtonShapes = (0, _type.tuple)('circle', 'circle-outline', 'round');
var ButtonSizes = (0, _type.tuple)('large', 'default', 'small');
var ButtonHTMLTypes = (0, _type.tuple)('submit', 'button', 'reset');
// tuple 實際上就是一個返回參數(shù)數(shù)組的函數(shù)
var tuple = function tuple() {
    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }
    return args;
  };

發(fā)現(xiàn)了 (0,function) 這個寫法好像好像沒見過秧荆,于是就研究了一下:
相關鏈接:https://developer.mozilla.org...

逗號操作符

概述:逗號操作符對它的每個操作數(shù)求值(從左到右)殿衰,并返回最后一個操作數(shù)的值杭朱。當你想要在期望一個表達式的位置包含多個表達式時,可以使用逗號操作符甚脉。這個操作符最常用的一種情況是:for 循環(huán)中提供多個參數(shù)将鸵。需要注意的是勉盅,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

輸出的結果為 :
false
true
ture
false草娜。

解釋:

在函數(shù)foo中,this指向的是obj痒筒,因為foo是obj的方法宰闰。所以this===window返回false就能理解了。
但是調用(0,obj.myFunc)()簿透,表達式(0,obj.foo)將評估它的每個操作數(shù)(從左到右)移袍,并返回最后一個操作數(shù)的值。換句話說老充,(0咐容,obj.foo)等于返回一個函數(shù):

? () {
        console.log(this === window);// this是全局對象window,所以輸出的是true蚂维。
        console.log(this === obj);// this是全局對象window,所以輸出的是false路狮。
    }

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末虫啥,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子奄妨,更是在濱河造成了極大的恐慌涂籽,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,948評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件砸抛,死亡現(xiàn)場離奇詭異评雌,居然都是意外死亡,警方通過查閱死者的電腦和手機直焙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評論 3 385
  • 文/潘曉璐 我一進店門景东,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人奔誓,你說我怎么就攤上這事斤吐。” “怎么了?”我有些...
    開封第一講書人閱讀 157,490評論 0 348
  • 文/不壞的土叔 我叫張陵和措,是天一觀的道長庄呈。 經常有香客問我,道長派阱,這世上最難降的妖魔是什么诬留? 我笑而不...
    開封第一講書人閱讀 56,521評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮贫母,結果婚禮上文兑,老公的妹妹穿的比我還像新娘。我一直安慰自己颁独,他們只是感情好彩届,可當我...
    茶點故事閱讀 65,627評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著誓酒,像睡著了一般樟蠕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上靠柑,一...
    開封第一講書人閱讀 49,842評論 1 290
  • 那天寨辩,我揣著相機與錄音,去河邊找鬼歼冰。 笑死靡狞,一個胖子當著我的面吹牛,可吹牛的內容都是我干的隔嫡。 我是一名探鬼主播甸怕,決...
    沈念sama閱讀 38,997評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼腮恩!你這毒婦竟也來了梢杭?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,741評論 0 268
  • 序言:老撾萬榮一對情侶失蹤秸滴,失蹤者是張志新(化名)和其女友劉穎武契,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體荡含,經...
    沈念sama閱讀 44,203評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡咒唆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,534評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了释液。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片全释。...
    茶點故事閱讀 38,673評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖误债,靈堂內的尸體忽然破棺而出恨溜,到底是詐尸還是另有隱情符衔,我是刑警寧澤,帶...
    沈念sama閱讀 34,339評論 4 330
  • 正文 年R本政府宣布糟袁,位于F島的核電站判族,受9級特大地震影響,放射性物質發(fā)生泄漏项戴。R本人自食惡果不足惜形帮,卻給世界環(huán)境...
    茶點故事閱讀 39,955評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望周叮。 院中可真熱鬧辩撑,春花似錦、人聲如沸仿耽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽项贺。三九已至君躺,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間开缎,已是汗流浹背棕叫。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留奕删,地道東北人俺泣。 一個月前我還...
    沈念sama閱讀 46,394評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像完残,于是被迫代替她去往敵國和親伏钠。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,562評論 2 349

推薦閱讀更多精彩內容