es6 如何获得实例化对象的方法?

例如

class NumPicker {
    constructor(current = 1, min = 1, max = 10, cutCallback = () => {}, addCallback = () => {}, alwaysCallback = () => {}) {
        this.numPicker = {};
        this.numPicker.current = current;
        this.numPicker.minNum = min;
        this.numPicker.maxNum = max;
    }

    addNum() {
        let that = this;
        if (that.num_picker.current <= that.num_picker.minNum) {
            return;
        } else {
            that.num_picker.current--;
            alwaysCallback(that.num_picker.current);
            cutCallback(that.num_picker.current);
        }
    }
    cutNum() {
        let that = this;
        if (that.num_picker.current <= that.num_picker.maxNum) {
            that.num_picker.current++;
            addCallback(that.num_picker.current);
            alwaysCallback(that.num_picker.current);
        } else {
            return;
        }
    }
};

然后我let p = new NumPicker(); 怎样获得p的方法?

我用

    for(let key in p.__proto__) {
        console.log(key)
    }

并不能得到啊

阅读 3.3k
2 个回答
Object.getOwnPropertyNames(Object.getPrototypeOf(p))

es6 内部定义的方法都是不可枚举的,你如果要遍历就NumPicker.prototype.addNum=()=>{}

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题