是否有任何方法不应该是原型方法?

时间:2015-03-22 15:22:06

标签: javascript

只是在Javascript中考虑,通常我们将方法放在原型中,这可以避免代码重复。

我想知道是否存在我们需要将方法作为非原型方法的实际情况?如果是的话,你能提供一些例子。

1 个答案:

答案 0 :(得分:0)

想象一个代表动物的物体。所有动物都可以行走,所以让我们添加一个walk()函数作为原型。

function Animal(name) {
    this.name = name;
}

Animal.prototype.walk = function () {

    console.log(this.name + ' is walking');
};

您现在可以创建一个实例:

var cat = new Animal('Cat');
cat.walk();

然而,有些动物与其他动物不同。例如,猫不能吠叫,但狗可以。因此bark()函数不能成为原型的一部分。您需要将其添加到实例。

var dog = new Animal('Dog');
dog.bark = function () {

    console.log(this.name + ' is barking');
};

dog.walk();
dog.bark();