gpt4 book ai didi

javascript - this 关键字在链方法上的用法 - JavaScript

转载 作者:行者123 更新时间:2023-12-03 09:42:15 25 4
gpt4 key购买 nike

我有一个 DataTable 对象数组:

var scheme_tables = {
length: 3,
remittance-penalty-scheme: DataTable.Api._Api[0],
reporting-penalty-scheme: DataTable.Api._Api[0],
service-fee-scheme: DataTable.Api._Api[0],
__proto__: Array[0]
}

我正在对每个 ajax 重新加载到这些表中的每个表执行回调:

for(key in scheme_tables) {             
scheme_tables[key].ajax.reload(reloader)
^^^^^^^^
}

在该 reloader 函数中,我有一个 this 关键字:

var reloader = function() {
console.log(this)
^^^^
}

reloader() 函数中的 this 关键字是否引用 .ajax 属性或 scheme_tables[key] 对象?因为当我执行 console.log(this) 时,我收到一个 Window 对象 - 它应该引用 DataTable 实例吗?

最佳答案

您应该使用 .bind 创建对绑定(bind)到所需上下文的 reloader 函数的引用:

for (key in scheme_tables) {
var t = scheme_tables[key];
t.ajax.reload(reloader.bind(t));
}

没有必要进行 hasOwnProperty 测试 - 如果有人弄乱了您的 Object.prototype 那么 jQuery 就会失败。 jQuery 开发人员经过深思熟虑后决定不在 jQuery 的迭代函数中使用 hasOwnProperty

关于javascript - this 关键字在链方法上的用法 - JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31154352/

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