我应该在类构造函数或原型内创建方法

时间:2018-07-12 16:22:59

标签: javascript inheritance constructor prototype

让我说我上了一堂课:

function Dog(name) {
    this.name = name; 
}
Dog.prototype = {
    constructor: Dog
}

我想在该类中添加一些方法,但是我在应该将它们添加到构造函数itslef或该类的原型的位置上感到困惑。

例如我可以做到:

  function Dog(name) {
        this.name = name;
        this.bark = function() { 
            console.log(this.name + ' barked!');
        }
    }

或者我也可以这样做:

function Dog(name) {
        this.name = name; 
    }
    Dog.prototype = {
        constructor: Dog,
        bark: function() {
            console.log(this.name + ' barked');
        }
    }

两个选项之间有什么区别?哪一个更好?以及每种情况下我应该使用哪种情况?

旁注:我知道这个问题很基本,很可能重复,但是我找不到任何相似的帖子,也许我在构造这个问题是错误的。

0 个答案:

没有答案