new 運算符創建一個用户定義的對象類型的實例或具有構造函數的內置對象的實例。 這是MDN上對new操作符的定義,從這句話中可以看出new返回的其實就是一個實例,那麼問題來了實例又是個啥東西? 先看個例子: function Cat(name, gender) { this.name = name; this.gender = gender; } Cat.prototype.sa
bind() 方法創建一個新的函數,在 bind() 被調用時,這個新函數的 this 被指定為 bind() 的第一個參數,而其餘參數將作為新函數的參數,供調用時使用。 從MDN對於bind的描述來看: 返回值是一個函數,而不是執行結果 this值會指向第一個參數 其餘參數會作為新函數的參數 看個例子: function test(name, age) { console.lo
前言 猶記得前段時間一次面試中,面試官問到:能説一説express和koa的區別嗎?當時心裏輕蔑一笑,這問題簡單,於是信心滿滿回答道:一個是基於回調,一個是基於Promise的。當時面試官楞了一下,笑了笑沒説什麼,我當時便意識到有什麼地方不對,後來查了下資料,發現確實沒有這麼簡單。 我總結了我查閲到的資料,希望對各位童鞋有所幫助。 Express和Koa2的區別和聯繫 Express是基於 N
什麼是柯里化? 在計算機科學中,柯里化(英語:Currying),又譯為卡瑞化或加里化,是把接受多個參數的函數變換成接受一個單一參數(最初函數的第一個參數)的函數,並且返回接受餘下的參數而且返回結果的新函數的技術。 以上是維基百科對於柯里化給出的定義,總結一下: 輸入是一個函數,並且這個函數擁有n個參數 輸出也是一個函數,並且可以使用fn()()()這種方式調用 參數被柯里化過程中的函數被
Call的模擬實現 call() 方法使用一個指定的 this 值和單獨給出的一個或多個參數來調用一個函數。 這是MDN上關於call的描述,用通俗的語言解釋一下就是: 指定了this值(修改this) 可以傳入多個參數 它的調用對象時函數 可能這樣解釋還是有些模糊,可以看一個例子: function Test(name, age) { console.log(this.name