我想调用变量" info"当用户点击div
时代码打印"成功"
但是它的打印"未定义"
HTML 的
<div id="container" style="width: 100px; height: 100px; border: solid black 1px">
的javascript
window.onload = function(){
var Controller = function(){
this.info = ' success ';
this.listener = function(){
alert( this.info );
}
this.set = function( ele ){
ele.onclick = this.listener;
}
}
var target = document.getElementById('container');
var controller = new Controller();
controller.set( target );
}
我的目标
我的问题是 内部功能&#34;听众&#34;,
关键字&#34;此&#34;引用div元素,而不是类Controller
如何在函数内调用变量信息&#34; listener &#34; ?
答案 0 :(得分:3)
尝试
var Controller = function(){
var self = this; // Add this
this.info = ' success ';
this.listener = function(){
alert( self.info ); // Modify here
}
....
答案 1 :(得分:0)
您可以使用bind
将功能绑定到右侧this
:
ele.onclick = this.listener.bind(this);