前言:
線下筆試碰到的題目,發現學習掌握的不透徹,所以回來填坑
const obj1 =
}const obj2 =
console.
log(obj1.func.
bind
(obj2)()
);
輸出結果為:
剛開始很疑惑結果,於是做了個對比
const obj1 =
}const obj2 =
console.
log(obj1.func.
bind
(obj2)()
);
輸出結果為
箭頭函式中this指向當前所處物件環境,
箭頭函式形成區域性作用域,所以this指向window
window下沒有屬性a,結果是undefined
bind()方法建立乙個新的函式,在bind()被呼叫時,這個新函式的this被bind的第乙個引數指定,其餘的引數將作為新函式的引數供呼叫時使用。
var module =
}var unboundgetx = module.getx;
console.
log(
unboundgetx()
);// the function gets invoked at the global scope
// 函式在全域性範圍內被呼叫
// expected output: undefined
var boundgetx = unboundgetx.
bind
(module)
;console.
log(
boundgetx()
);// expected output: 42
箭頭函式 this指向問題
1.為什麼要用箭頭函式 2.箭頭函式分析this指向 1.this指向呼叫函式的物件 function a a 2.this指向window var a 2 這裡不能換成let a 2 因為window.獲取不到a的值 var obj obj.b 總結 1.箭頭函式在定義的時候生效 而普通函式則在呼...
箭頭函式this指向問題
箭頭函式表示式的語法比函式表示式更簡潔,並且沒有自己的this arguments super new.target。箭頭函式表示式更適用於那些本來需要匿名函式的地方,並且它不能用作建構函式。箭頭函式的this指向的是箭頭函式所在作用域的this指向 向來看一下這個物件,我在外部定義了乙個全域性變數...
箭頭函式中的this指向問題
箭頭函式沒有自己的 this,它內部的 this 是外層 塊的 this,也就是定義箭頭函式時所在的物件。es6 標準入門裡面對箭頭函式 this 的指向有如下說法 函式體內的 this 物件就是定義時所在的物件,而不是呼叫時所在的物件。一般this 物件的指向是可變的,但是在箭頭函式中,this ...