让我说我有
function cookie(a, b) {
this.a = a;
this.b = b;
this.sayA = function() {
alert(this.a);
}.bind(this);
}
cookie.prototype.sayB = function() {
alert(this.b);
}
var nc = new cookie(1, 2);
addEventListener("load", nc.sayA);
addEventListener("load", nc.sayB);
所以,sayA找到了我想要的上下文,因为它绑定到了持有它的对象,但是B虽然没有任何线索。 如何将“this”绑定到我在对象原型中定义的函数?
答案 0 :(得分:0)
这里有2个选项
table {
background-color: #646569;
color: #ffffff;
border-radius: 4px;
}
.table {
margin-bottom: 20px;
}
答案 1 :(得分:0)
你不能。
定义函数时,要绑定它的对象不存在。
当你调用该函数时,它已经从函数中分离出来并作为参数传递。
你可以:
答案 2 :(得分:0)
你几乎肯定不想这样做:
function cookie(a, b) {
this.a = a;
this.b = b;
Object.getPrototypeOf(this).sayB = sayB.bind(this);
}
function sayB() {
alert(this.b);
}
var c1 = new cookie(null, 'from c1');
var c2 = new cookie(null, 'from c2');
c1.sayB(); // "from c2"
c2.sayB(); // "from c2" (i.e. both from c2)
创建的每个cookie都会覆盖原型链上的函数,这不是您想要的(可能)。