这在Object方法中不引用Object而是引用函数绑定的标记

时间:2016-04-25 12:18:24

标签: javascript

MyObject = function() {
  this.a = "a";
  this.func = function() {
      this.a = "b";
      console.log(this); 
  }

}
.....
m = new MyObject();
$(li).bind('click',m.func);

我希望:this.func中的this引用周围的MyObject对象。 我得到this <li>上的引用(这就是控制台记录的内容)。

1 个答案:

答案 0 :(得分:0)

  

使用Function.prototype.bind() bind()方法创建一个新函数,在调用时,将其this关键字设置为提供的值,并在新函数提供任何前面提供的给定参数序列被称为。

注意:在引号中包裹li

var MyObject = function() {
  this.a = "a";
  this.func = function() {
    this.a = "b";
    console.log(this);
  }
}
var m = new MyObject();
$('li').on('click', m.func.bind(m));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<ul>
  <li>Coffee</li>
  <li>Tea</li>
  <li>Milk</li>
</ul>