[問題] 一個js的bind() 問題

作者: letmeask (Let me ask)   2021-06-18 15:00:02
程式
let a = {
x : 100 ,
fun : function(){
alert(this.x);
}
}
let b = {
x : 10 ,
fun : a.fun
}
b.fun();
會印出 10 , 我可以理解
不過我改成
let a = {
x : 100 ,
fun : function(){
alert(this.x);
}.bind(this)
}
let b = {
x : 10 ,
fun : a.fun
}
b.fun();
為什麼會印出undefined呢?
我fun不是已經綁定a物件了嗎?
先謝謝版友解惑~
作者: davidsky (Alive)   2021-06-18 16:11:00
this要看當下 this 不是你寫在a物件的this就是athis在你bind當下應該是全域的window

Links booklink

Contact Us: admin [ a t ] ucptt.com