gpt4 book ai didi

Javascript 将对象中的嵌套函数绑定(bind)到根对象

转载 作者:行者123 更新时间:2023-11-30 08:18:58 34 4
gpt4 key购买 nike

在这种情况下,我们需要将对象内的嵌套函数绑定(bind)到对象本身。当我们尝试将函数绑定(bind)到 this 时,它被绑定(bind)到窗口而不是...

var a = {
b: [{
onclick: function() {
console.log(this)
}.bind(this)
}]
}

a.b[0].onclick() // this = window

是否有任何可能的方法将 b[0].onclick 的范围设为对象 a 而无需使用 callapply 调用函数时?

谢谢!

最佳答案

a声明后,绑定(bind)onclick到a,一次,然后每次调用onclick时,调用上下文将是 a:

var a = {
b: [{
onclick: function() {
console.log(this)
}
}]
};
a.b[0].onclick = a.b[0].onclick.bind(a);

a.b[0].onclick()

你也可以在声明a之后定义函数:

var a = {
b: [{
}]
};
a.b[0].onclick = function() {
console.log(this);
}.bind(a);

a.b[0].onclick()

关于Javascript 将对象中的嵌套函数绑定(bind)到根对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57197155/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com