javascript - babel 编译 es6 类,函数未定义

标签 javascript oop methods constructor ecmascript-6

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/

相关文章:

java - 在java中构建读取和打印部分填充数组的方法

python,即时动态实现一个类

ruby - 简化 Ruby 方法 : leave unnecessary variables off

java - 如何从变量创建自定义类? (不是对象)

Swift - 父类中属性的默认值应该是什么?

javascript - 如何从angularjs访问变量express

javascript 在运行时重绘页面?

javascript - 将堆栈不同部分的测试结果聚合到一张图中

javascript - 销毁打印窗口中的 slider

python - 使用Python API以编程方式克隆Kubernetes对象