JavaScript和jQuery:调用内部函数
问题描述:
我在JavaScript和jQuery中使用集成的ajax请求获得以下代码。 问:为什么可以调用内部函数success1()
,但不可能调用this.success2()
?针对此问题的任何解决方案建议JavaScript和jQuery:调用内部函数
function myfuntion() {
this.url = "www.example.com/ajax.php";
var success1 = function (data) {
alert("SUCCESS1");
}
this.success2 = function (data) {
alert("SUCCESS2");
}
this.send = function() {
$.ajax({
type: "POST",
url: this.url,
dataType: "html"
}).done(function (data) {
success1(data);
this.success2(data);
});
}
}
var test = new myfunction().send();
答
至于其他的评论中,this
发送函数内部的情况下被改变,所以这就是为什么你success2
功能不调用。您应该在变量中保存myFunction
上下文,并使用该变量来引用this
上下文。因为回调,`this`指的是另一个对象中
function myfuntion() {
var self = this; // taking the current context in a variable.
self.url = "www.example.com/ajax.php";
var success1 = function (data) {
alert("SUCCESS1");
}
self.success2 = function (data) {
alert("SUCCESS2");
}
self.send = function() {
$.ajax({
type: "POST",
url: self.url,
dataType: "html"
}).done(function (data) {
success1(data);
self.success2(data);
});
}
}
:
试试这个。 – 2013-04-06 11:13:56
您可能想看看http://*.com/questions/3127429/javascript-this-keyword的接受答案,以获得对JavaScript的“this” – Exupery 2013-04-06 13:44:25