gpt4 book ai didi

javascript - 未捕获的类型错误 : Object function has no method

转载 作者:行者123 更新时间:2023-12-02 19:16:02 25 4
gpt4 key购买 nike

其思想是在继承的类 Rectangle 上实现 Shape 的calculateSurface方法,并使用 Rectangle 类上传递的参数来计算曲面。

function Shape (w,h){
this.h = h;
this.w = w;
this.calculateSurface = function (){
return this.w*this.h;
};
}

function Rectangle (w,h){
Shape.apply(this, arguments);
this.w = w;
this.h = h;
this.calcSurface = function(){
return Shape.calculateSurface(this.w, this.h);
};
}

Rectangle.prototype = new Shape();
Rectangle.prototype.constructor = Rectangle;

var rec = new Rectangle(4,4);

console.log(rec.calcSurface());

我得到的错误是:

    Uncaught TypeError: Object function Shape(w,h){
this.h = h;
this.w = w;
this.calculateSurface = function (){
return this.w*this.h;
};
} has no method 'calculateSurface'

最佳答案

这一行...

return Shape.calculateSurface(this.w, this.h);

正在您的 Shape() 函数上寻找 calculateSurface() 方法。只是它不在那里,它位于构造函数返回的对象上。

你想要这样的东西......

var self = this;
this.calcSurface = function(){
return self.calculateSurface(this.w, this.h);
};

jsFiddle .

此外,如果您创建大量 ,可能值得将 calculateSurface() 放在 Shapeprototype 属性上>Shape 对象,该方法在内存中只存在一次。

关于javascript - 未捕获的类型错误 : Object function has no method,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13121091/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com