Babel 正在编译我的 es6 类,因此构造函数本身就是一个函数,类中的方法成为类声明。
这导致构造函数中的任何函数调用都未定义。
前:
class myClass {
constructor() {
myMethod();
} // END constructor
myMethod() {
console.log("myMethod");
}
} // END myClass
后:
var myClass = function () {
function myClass() {
_classCallCheck(this, myClass);
myMethod(); // undefined function
} // END constructor
_createClass(myClass, [{
key: 'myMethod',
value: function myMethod() {
console.log("myMethod");
} // END myMethod()
}]);
return myClass;
}(); // END myClass
exports.default = myClass;
感谢这方面的任何帮助
最佳答案
您需要this.myMethod()
在 ES6 类构造函数和方法中。
class myClass {
constructor() {
this.myMethod();
} // END constructor
myMethod() {
console.log("myMethod");
}
} // END myClass
myMethod()
调用一个名为 myMethod
的函数课外。function myMethod() {
console.log("external function!");
}
class myClass {
constructor() {
myMethod();
} // END constructor
myMethod() {
console.log("myMethod");
}
} // END myClass
JavaScript 的方法只是一个对象的属性,它是一个函数。您需要
obj.prop
访问属性。在类构造函数和方法中,this
指向实例本身。
关于javascript - babel 编译 es6 类,函数未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35374103/