javascript 中的类方法不是函数
2013-04-17
54939
答案肯定是显而易见的,但我没有看到
这是我的 javascript 类:
var Authentification = function() {
this.jeton = "",
this.componentAvailable = false,
Authentification.ACCESS_MASTER = "http://localhost:1923",
isComponentAvailable = function() {
var alea = 100000*(Math.random());
$.ajax({
url: Authentification.ACCESS_MASTER + "/testcomposant?" + alea,
type: "POST",
success: function(data) {
echo(data);
},
error: function(message, status, errorThrown) {
alert(status);
alert(errorThrown);
}
});
return true;
};
};
然后我实例化
var auth = new Authentification();
alert(Authentification.ACCESS_MASTER);
alert(auth.componentAvailable);
alert(auth.isComponentAvailable());
除了最后一种方法,我可以访问所有方法,它在 firebug 中显示:
auth.isComponentAvailable is not a function
.. 但是它是..
3个回答
isComponentAvailable
未附加到您的对象(即不是对象的属性),它只是包含在您的函数中;这使它成为私有的。
您可以在其前面加上
this
以使其成为公共的
this.isComponentAvailable = function() {
dm03514
2013-04-17
isComponentAvailable 实际上附加在窗口对象上。
Stone Shi
2013-04-17
isComponentAvailable
是一个私有函数。您需要将其添加到
this
中以使其成为公共函数,如下所示:
var Authentification = function() {
this.jeton = "",
this.componentAvailable = false,
Authentification.ACCESS_MASTER = "http://localhost:1923";
this.isComponentAvailable = function() {
...
};
};
cfs
2013-04-17