普通函式中,內層函式不能從外層函式中繼承this的值,在內層函式中,this會是window或者undefined,臨時變數self用來將外部的this值匯入到內部函式中(另外的方式是在內部函式執行.bind(this))
es6中的箭頭函式會直接呼叫的this是繼承父級的this。
functionfun()console.log('id: '
, self.id);
//id: 1
},500);
}fun.call();
functionfun()console.log(self);
'id: '
, self.id);
//id: 1
}.bind(this),
500);
}fun.call();
functionfun(),500);*/settimeout(function(),
500);
}fun(2,2
,3,4);
這段**中,箭頭函式沒有繫結arguments,所以它會取fun的arguments。
普通函式中的this:
1.預設情況下(非嚴格模式),沒有找到直接呼叫者,this指向window
2.嚴格模式('use strict'),沒有找到直接呼叫者,this是undefined
3.this總是代表它的直接呼叫者,比如:obj.fun,那麼fun中的this是obj
引用:
ES6 箭頭函式 以及箭頭函式和普通函式的區別
箭頭函式的基本語法 es6中允許使用箭頭 來定義箭頭函式,具體語法,可以通過乙個例子說明 箭頭函式 let fun name 等同於 let fun function name 從上面的例子可以看出,定義箭頭函在數語法上要比普通函式簡潔得多。箭頭函式省去了function關鍵字,採用箭頭 來定義函式...
ES6箭頭函式與普通函式的區別
箭頭函式 1.由於大括號被解釋為 塊,所以如果箭頭函式直接返回乙個物件,必須在物件外面加上括號。var get id 2.箭頭函式可以與變數解構結合使用 const full first last 等於function full person 3.箭頭函式使得表示式更加簡潔。使用箭頭函式需要注意幾點...
es6箭頭函式
本例是在了解es6知識後在原來定義函式的基礎上進行理解var searchvalue 查詢匹配物件 var button var input var select button if searchvalue.input undefined button.click else 重新整理 tableli...