gpt4 book ai didi

javascript - OO JavaScript - 避免 self = this

转载 作者:可可西里 更新时间:2023-11-01 02:42:42 25 4
gpt4 key购买 nike

有谁知道在以 OO 方式使用 JavaScript 时避免声明 var self = this 的方法吗?我经常看到它并且很好奇它是否只是您必须做的事情,或者是否真的有一种方法(也许是类库?)可以让您绕过它?我确实意识到为什么有必要(这具有功能范围)。但是您永远不知道那里可能有什么聪明的方法..

例如,我通常在 JS 中这样编写我的“类”:

function MyClass() {

}

MyClass.prototype = {

firstFunction: function() {

var self = this;

$.ajax({
...
success: function() {
self.someFunctionCall();

}
});
},

secondFunction: function() {

var self = this;

window.setTimeout(function() {
self.someOtherFunction();
}, 1000);
}

};

最佳答案

在您的第一个函数中,您可以这样做...

$.ajax({
context: this,
success: function() {
this.someFunctionCall();

}
});

在第二个中,您可以执行此操作,但您需要填充 .bind()在旧版浏览器中...

window.setTimeout(function() {
this.someOtherFunction();
}.bind(this), 1000);

使用 jQuery,您也可以这样做...

window.setTimeout($.proxy(function() {
this.someOtherFunction();
}, this), 1000);

关于javascript - OO JavaScript - 避免 self = this,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11641504/

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