gpt4 book ai didi

javascript - 在不使用 "this"关键字的情况下从 View 内部调用方法?

转载 作者:行者123 更新时间:2023-11-28 19:07:27 25 4
gpt4 key购买 nike

我的主干代码似乎有大量 this.methodCall() 类型的调用,我希望能够删除 this,然后直接从 View 内部调用methodCall()

请参阅以下代码:

app.Main = Backbone.View.extend({

el: '#main-div',

// how do I call this function without invoking "this"?
setPageCookies: function () {
console.log('setting page cookies called!');
},

initialize: function () {
// saw this online as a possible solution, but only seems to affect the scope of "this"
_.bindAll(this, 'setPageCookies');

// this works:
this.setPageCookies();

// HOWEVER, I'd like to be able to call it like this instead:
setPageCookies();

}

});

最佳答案

首先 - this.setPageCookies()setPageCookies() 具有截然不同的含义。

在没有 this 的情况下调用 setPageCookies() 的方法是将 setPageCookies 设为函数声明:

function setPageCookies() {

}

Backbone.View.extend({
setPageCookies: setPageCookies,
initialize: function() {
setPageCookies()
}
});

但是,现在您不能使用 this 代替 setPageCookies - 除非您使用 bind,或者除非您编写一个复杂的包装器setPageCookies: setPageCookies 它采用 this 值并将其作为第一个参数传递..或其他参数。这让我问 - 为什么你想实现这个目标?

关于javascript - 在不使用 "this"关键字的情况下从 View 内部调用方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31409387/

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