Javascript 函数实例和调用
Javascript Function Instance and call
我使用Javascript,我想创建授权类。
我的代码是
function Auth() {
this.action;
this.run = function() {
$("#auth-dialog-id").dialog({
width: 400,
height: 250,
modal: true,
buttons: {
OK: function() {
this.action();
$(this).dialog("close");
},
Cancel: function() {
$(this).dialog("close");
}
}
});
};
}
叫
auth = new Auth();
auth.action = a;
auth.run();
}
function a() {
alert("test");
}
但我有错误
对象 # 没有方法"操作"
有人可以帮助我吗?
由于您已经更正了this.action = a
问题,因此问题出在OK
按钮回调上下文中。在按钮内单击回调this
不引用auth
实例。
这里一个可能的解决方案是使用闭包变量,如下所示
function Auth() {
var self = this;
this.run = function () {
$("#auth-dialog-id").dialog({
width: 400,
height: 250,
modal: true,
buttons: {
OK: function () {
self.action();
$(this).dialog("close");
},
Cancel: function () {
$(this).dialog("close");
}
}
});
};
}
auth = new Auth();
auth.action = a;
auth.run();
演示:小提琴
相关文章:
- 如何在GoogleWeb工具包(GWT)中从JSNI调用接口(实例化)
- 在Javascript中对类的每个实例调用一个方法
- 如何用javascript调用函数,然后在滚动事件中调用该函数的特定实例
- 从实例方法调用实例方法
- 概念验证模型控制器调用正确的实例
- 调用函数和创建函数实例之间的Javascript差异
- 向模板实例变量传递调用方法调用的结果时出现异常
- 如何理解“当类实例化时,JavaScript静态方法也是不可调用的”
- 如果多次调用同一函数,如何停止该函数的先前实例
- 我应该在原型上还是在新创建的实例上调用构造函数方法
- 调用Class.prototype=new MyClass()是否确保每次都重新实例化超类
- 调用Javascript中实例的函数
- 在数组中的每个对象上调用实例函数
- 如何根据所选选项调用实例方法
- 如何在匿名函数中调用实例方法
- 如何在javascript中调用实例化类的函数
- 是否可以在 javascript 中的私有函数中调用实例变量
- 不能在java/coffeescript中调用实例方法
- Angularjs用不同的url调用实例化的资源方法
- 使用jQuery时可以调用实例函数吗?