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>
上的引用(这就是控制台记录的内容)。
答案 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>