gpt4 book ai didi

javascript - 下划线 bindAll : preserving the 'this' context

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:37:59 24 4
gpt4 key购买 nike

在调用 onSubmit 时,我在尝试将 uploader 保留为 this 上下文时遇到问题。任何 JS 大师都可以帮忙吗?

uploader: {

init: function(){
var that = this;

var fileUploader = new Uploader.FileUploaderBasic({
button : $("#upload-btn")[0],
action : "/filesCollection",
onSubmit : that.onSubmit
});

_.bindAll(this, this.onSubmit); // attempting to bind 'this'
},


onSubmit: function(id, fileName){
console.log(this); // still refers to 'fileUploader' object :(
}

}

导致以下错误:

Uncaught TypeError: Cannot read property 'bind' of undefined

示例: http://jsfiddle.net/WilsonPage/BE3Lp/5/

最佳答案

已解决的问题:http://jsfiddle.net/WilsonPage/BE3Lp/41/

我发现的几件重要事情:

  1. 必须在分配函数之前调用 _.bindAll()
  2. 第一个参数必须是您希望绑定(bind)的对象或this
  3. 后面的参数必须是对象中存在的函数的名称 (this),并且它们必须是字符串形式!
  4. 如果您想绑定(bind)对象 (this) 中的所有函数,则省略任何函数名称并将对象 (this) 作为唯一参数,例如。 _.bindAll(this)

希望这对像我这样困惑的人有所帮助!

关于javascript - 下划线 bindAll : preserving the 'this' context,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7887595/

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