通过原型

时间:2015-11-19 10:12:06

标签: javascript

我正在尝试添加一个高度方法,但现在当我在没有()的情况下调用它时。 我如何使用它作为benji.height()方法的方法?我的意思是最后用括号?

function Dog() {
    this.tail = true;
    this.height = 33;

}
 var benji = new Dog();
 var rusty = new Dog();

 Dog.prototype.height = function() {
     return "the height is " +  this.height + " cms";
 };

console.log(benji.height);

2 个答案:

答案 0 :(得分:1)

您有一个名为height的字段,并且您正在尝试添加名为height的方法 你需要给它一个明确的名称,它会起作用。

function Dog() {
    this.tail = true;
    this.height = 33;

}
 var benji = new Dog();
 var rusty = new Dog();

 Dog.prototype.getHeight = function() {
     return "the height is " +  this.height + " cms";
 };

document.body.innerHTML = "<b>height:</b> " + (benji.height) + "<br/>";
document.body.innerHTML += "<b>getHeight():</b> " + benji.getHeight();

答案 1 :(得分:1)

所以你在对象和对象原型中都有高度变量。因此,根据原型链,它将首先在Object中查找,然后在原型中查找。

这里

function Dog() {
    this.tail = true;
    this.height = 33;

}

高度变量将存储在对象中因此它将找到高度,这不是您无法调用benji.height();的原因的函数

因此,其他用户建议只需更改您可以根据需要调用它的函数名称。