0
我一直在ES6一段時間的實驗現在和我有一個問題關於方法.bind(this)
與新的箭頭函數相比的性能。是箭頭函數比綁定方法更快通過此參數
我想知道在使用.bind(this)
傳統功能方面是否有任何性能改進,或者是否對用戶箭頭功能以及爲什麼更好。
我做了下面的測試,但我不確定爲什麼每次執行測試時都會得到不同的值。
function useBind() {
if(this && this.i) {
console.log(this.i);
}
}
const noBind =() => {
if(this && this.i) {
console.log(this.i);
}
}
function goFat() {
this.i = 10;
for (var i = 0; i < 100; i++) {
noBind();
}
}
function goTraditional() {
this.i = 20;
for (var i = 0; i < 100; i++) {
useBind.bind(this)();
}
}
function race() {
var start = performance.now();
goTraditional();
console.log('Traditional elapsed: ' + (performance.now() - start));
start = performance.now();
goFat()
console.log('Fat elapsed: ' + (performance.now() - start));
start = performance.now();
goTraditional();
console.log('Traditional elapsed: ' + (performance.now() - start));
start = performance.now();
goFat()
console.log('Fat elapsed: ' + (performance.now() - start));
start = performance.now();
goTraditional();
console.log('Traditional elapsed: ' + (performance.now() - start));
start = performance.now();
goFat()
console.log('Fat elapsed: ' + (performance.now() - start));
console.log('------');
}
對不起,如果這個問題是重複或有其他類似的話題,但我不能找到一個具體的答案,直到現在。
'useBind.bind(this); useBind();' - 這不是''bind'如何工作。 – Bergi
你試圖做的事是什麼,是如此的性能關鍵? –
您是否關心調用的性能或創建函數對象的性能? – Bergi