ste*_*e-o 19 javascript ecmascript-6
为什么我收到错误:"未捕获TypeError:self.myTest不是函数"?如何从javascript类中的另一个方法中调用方法?
class MyClass {
myTest() {
console.log('it works');
}
runMyTest() {
self.myTest();
}
}
var myClass = new MyClass();
myClass.runMyTest();Run Code Online (Sandbox Code Playgroud)
Tob*_*lor 21
您需要使用this关键字而不是self.
runMyTest() {
this.myTest();
}
Run Code Online (Sandbox Code Playgroud)
你需要使用this不self喜欢
runMyTest() {
this.myTest();
}
Run Code Online (Sandbox Code Playgroud)
然而,许多实现都喜欢保留引用并执行以下操作:
var self = this;
Run Code Online (Sandbox Code Playgroud)
这可能是你被认为self是自我参照的原因.为了进一步阅读,我建议这个SO - 帖子
class MyClass {
myTest() {
console.log('it works');
}
runMyTest = ()=>{
this.myTest();
}
runMyTest2 = function(){
this.myTest();
}
}
var myClass = new MyClass();
myClass.runMyTest();
myClass.runMyTest2();
Run Code Online (Sandbox Code Playgroud)
使用箭头函数将 this 绑定到全局对象。为了表示对象属性,我们必须使用函数
let user = {
name :"Something"
}
user.value = ()=>{
console.log(this)
}
user.value2 = function(){
console.log(this)
}
user.value(); ///returns this for windows
user.value2(); ///returns object user
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26123 次 |
| 最近记录: |