JavaScriptをオブジェクト指向で使用するときにvarself= 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);
}
};