gpt4 book ai didi

javascript - 从同一个类中的另一个方法调用一个方法

转载 作者:可可西里 更新时间:2023-11-01 01:17:07 28 4
gpt4 key购买 nike

为什么我会收到错误消息:“未捕获的类型错误:self.myTest 不是函数”?如何从 javascript 类的另一个方法中调用一个方法?

class MyClass {

myTest() {
console.log('it works');
}

runMyTest() {
self.myTest();
}

}

var myClass = new MyClass();
myClass.runMyTest();

最佳答案

您需要使用 this 关键字而不是 self

runMyTest() {
this.myTest();
}

边注

如果您正在嵌套标准函数符号,则 this 不是词法绑定(bind)的(将是未定义的)。要解决此问题,请使用箭头函数(首选)、.bind,或在函数外部本地定义 this

class Test {
constructor() {
this.number = 3;
}

test() {
function getFirstThis() {
return this;
}

const getSecondThis = () => {
return this;
};

const getThirdThis = getFirstThis.bind(this);

const $this = this;
function getFourthThis() {
return $this;
}

// undefined
console.log(getFirstThis());

// All return "this" context, containing the number property
console.log(this);
console.log(getSecondThis());
console.log(getThirdThis());
console.log(getFourthThis());
}
}

new Test().test();

关于javascript - 从同一个类中的另一个方法调用一个方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43642729/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com