var leadingThirtysevenList = list.bind(undefined, 37);
這是在手冊中看到的一段關於 bind() 函數傳入第二個參數時實現的功能的程式碼段,其中他將 undefined 作為參數傳入。在某些框架中也看到參數傳遞 undefined 的做法,但是在網路上搜尋一直沒能找到一個比較完整清晰的回答,想請各位老師給個詳細的解答。
小伙看你根骨奇佳,潜力无限,来学PHP伐。
你提供的這段程式碼, 為什麼傳入undefined和我下面的解釋可能是無關的。
我主要說說其他一些框架;例如jquery就會傳入undefined作為參數,並且會賦給一個空值。 那是因為js的一個bug問題, 那就是undefined能被重寫! ! , 是的,你沒聽錯。
至於為什麼undefined被重寫會很危險呢,看下面的程式碼:
(function (undefined) { let a; // 如果a没有值则为a赋值. 但因为undefined被重写了,所以这句根本执行不到。 if (a === undefined) { a = 'b'; } })(true);
那你覺得如果你希望之傳遞第二個參數,第一個參數用預設值或是無所謂,該怎麼寫?
這段程式碼只是為了實現函數柯里化呼叫
ECMAScript5.1 15.3.4.4中有解釋, 當傳入的第一個參數是null, undefined時, 函數的上下文將指向window (node中是global)
第一個是佔位用的,但是用null效果會比undefined好吧。一般個人習慣用null來佔位。
你提供的這段程式碼, 為什麼傳入undefined和我下面的解釋可能是無關的。
我主要說說其他一些框架;例如jquery就會傳入undefined作為參數,並且會賦給一個空值。
那是因為js的一個bug問題, 那就是undefined能被重寫! ! , 是的,你沒聽錯。
至於為什麼undefined被重寫會很危險呢,看下面的程式碼:
那你覺得如果你希望之傳遞第二個參數,第一個參數用預設值或是無所謂,該怎麼寫?
這段程式碼只是為了實現函數柯里化呼叫
ECMAScript5.1 15.3.4.4中有解釋, 當傳入的第一個參數是null, undefined時, 函數的上下文將指向window (node中是global)
第一個是佔位用的,但是用null效果會比undefined好吧。一般個人習慣用null來佔位。