javascript对象 - 如何在类函数内调用类变量

时间:2014-05-03 04:32:22

标签: javascript oop object

我想调用变量" 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 );



}

jsfiddle

我的目标

  • 我需要调用变量&#34; info&#34;在控制器监听器
  • 我需要在控制器集
  • 内点击操作

我的问题是 内部功能&#34;听众&#34;,

关键字&#34;此&#34;引用div元素,而不是类Controller

如何在函数内调用变量信息&#34; listener &#34; ?

2 个答案:

答案 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);