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;
感谢您提供的任何帮助
答案 0 :(得分:2)
ES6类构造函数和方法中需要this.myMethod()
。
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的方法只是一个Object的属性,它是一个函数。您需要obj.prop
才能访问该媒体资源。在类构造函数和方法中,this
指向实例本身。