调用方法的事件宽度JS OOP(原型)
Call Method By Event width JS OOP (prototype)
我希望任何人都能帮助我=)
我尽量使这个例子保持简单:
function myClass(){
//some Code
}
myClass.prototype.func1 = function(){
//some Code
}
myClass.prototype.func2 = function(){
document.getElementById("myEl").onclick = function(){
this.func1 //does not work, this is only the Element...
}
}
如何调用func1?我想在func2中绑定onclick-event
首先,必须保持对当前对象的引用。正如您已经注意到的,在事件处理程序中,this
引用DOM元素。你可以使用
var self = this;
第二,你必须真正地调用函数:
self.func1();
完整的示例:
myClass.prototype.func2 = function(){
var self = this;
document.getElementById("myEl").onclick = function(){
self.func1();
};
}
在较新的浏览器中,您还可以使用.bind()
[MDN]来明确定义this
应该引用的内容(参见MDN文档中的其他浏览器的shim):
document.getElementById("myEl").onclick = this.func1.bind(this);
在onclick
函数中,this
值绑定到被单击的元素。您需要在func2:
this
的副本(引用)。myClass.prototype.func2 = function(){
var self = this; //keep a reference to the this value
document.getElementById("myEl").onclick = function(){
self.func1();
}
}
相关文章:
- 使用“;这个“;JavaScript原型方法中的关键字
- 引用类变量中的原型方法
- 如何从对象的原型方法访问JavaScript对象属性
- 为什么要包装每一个原型“;类“;JS中具有匿名函数的对象
- Node.js中的JavaScript原型对象效率
- Javascript OOP 原型函数返回 undefined
- Javascript OOP - 继承和原型设计
- 这个_get不是一个函数-javascript oop和原型
- 带有jQuery对象的OOP:更改jQuery数组的原型与创建我自己的对象树
- Javascript原型继承和OOP
- 如果我使用原型创建OOP JS代码,我如何从循环中引用类方法
- Javascript OOP - 通过接口或原型验证对象的最佳实践
- JS OOP:原型上的方法vs构造函数中的方法
- 调用方法的事件宽度JS OOP(原型)
- 将JS原型和OOP与实例变量混淆
- Javascript";OOP";以及具有多级继承的原型
- OOP Javascript:应该将私有函数添加到类原型中吗
- OOP建议使用原型去掉switch语句
- CoffeeScript和OOP -原型方法
- Javascript OOP -从原型设置器访问方法