代码之家  ›  专栏  ›  技术社区  ›  Boy

如何在js中正确调用prototype中的函数

  •  0
  • Boy  · 技术社区  · 6 年前

    如何正确调用预测试中的函数?

    我得到这个错误: 未捕获类型错误:b.testmenow不是函数

        var pretest = function () {
            var MAX_NUM = 250.0;
        
            var prebase = function (NEW_NUM) {
                this.NEW_NUM = NEW_NUM ? NEW_NUM : true;
            };
        
            prebase.prototype.testmenow = function () {
                return this.NEW_NUM;
            };
            
            return prebase;
        };
        
        var b = new pretest(111);
        console.log(b.testmenow());
    1 回复  |  直到 6 年前
        1
  •  1
  •   Chris    6 年前

    你需要接受你的意见 new pretest(111) 通过添加 n 是的。 然后您必须使用n实例化您的prebase构造函数。

        var pretest = function (n) {
            var MAX_NUM = 250.0;
        
            var prebase = function (NEW_NUM) {
                this.NEW_NUM = NEW_NUM ? NEW_NUM : true;
            };
        
            prebase.prototype.testmenow = function () {
                return this.NEW_NUM;
            };
            
            return new prebase(n);
        };
        
        var b = pretest(111);
        console.log(b.testmenow());

    奇怪的是这里有两个构造器,你肯定可以用一个来实现。

    正如费利克斯巧妙地提到的,你可以打电话给 pretest(111) 而不是 新的预测试(111) 是的。