Javascript 调用按钮单击函数时保留该类
当从按钮输入单击功能时,是否有方法保持类Javascript 调用按钮单击函数时保留该类,javascript,jquery,ecmascript-6,Javascript,Jquery,Ecmascript 6,当从按钮输入单击功能时,是否有方法保持类此 例如: class MyClass extends FooClass{ constructor (obj) { super (obj) this.obj= obj; $("#someButton").click(this.foo); } foo(){ this.obj; // undefined because this is now #someButton and not MyClass }
此
例如:
class MyClass extends FooClass{
constructor (obj) {
super (obj)
this.obj= obj;
$("#someButton").click(this.foo);
}
foo(){
this.obj; // undefined because this is now #someButton and not MyClass
}
但是我想在
foo()
中访问this.obj
,您需要绑定foo
$("#someButton").click(this.foo.bind(this));
或者使用箭头功能
$("#someButton").click(() => this.foo());
您需要绑定
foo
$("#someButton").click(this.foo.bind(this));
或者使用箭头功能
$("#someButton").click(() => this.foo());
为什么不为函数foo定义参数:
$(“#someButton”)。单击(函数(){
foo(obj);
});
foo(obj){
//与obj合作。。。
}
为什么不为函数foo定义参数:
$(“#someButton”)。单击(函数(){
foo(obj);
});
foo(obj){
//与obj合作。。。
}
就是这样。这两种方法之间有区别吗?第二个只是调用函数?那么为什么这个.foo不起作用呢?bind
使用有界上下文创建新函数,这是在回调中保留上下文的ES5方法<代码>()=>blah创建了新的箭头函数,并在ES201Somthing中引入。它们在某些方面是不同的,但在这种情况下应该是“相同的”“为什么这个.foo不起作用?”()=>body
创建新的箭头函数this.foo
只需访问foo
w/o调用即可。所以你需要这个.foo()
来完成它。这两种方法之间有区别吗?第二个只是调用函数?那么为什么这个.foo不起作用呢?bind
使用有界上下文创建新函数,这是在回调中保留上下文的ES5方法<代码>()=>blah创建了新的箭头函数,并在ES201Somthing中引入。它们在某些方面是不同的,但在这种情况下应该是“相同的”“为什么这个.foo不起作用?”()=>body
创建新的箭头函数this.foo
只需访问foo
w/o调用即可。所以你需要this.foo()
他如何访问foo
?他如何访问foo
?