我遇到了以下提到的在javascript中实现原型继承的方法。
方法1:
Dog.prototype = Object.create(new Animal());
方法2:
Dog.prototype = new Animal();
方法3:
Dog.prototype = Animal.prototype;
我尝试为此创建一个简单的演示,所有这些都给出了完全相似的最终结果。
下面是代码段
function Animal(name) { this.name = name; } Animal.prototype.sleep = function() { console.log(this.name + ': Zzz...'); } function Dog(name) { this.name = name; }
// Create a reference for the prototype Way 1 Dog.prototype = Object.create(new Animal()); // Create a reference for the prototype Way 2 Dog.prototype = new Animal(); // Create a reference for the prototype Way 3 Dog.prototype = Animal.prototype;
Dog.prototype.makeSound = function() { console.log(this.name + ': Woof woof!'); } Dog.prototype.sleep = function() { console.log(this.name + ': Overriding Zzzz....'); } var dog = new Dog('Lassie'); dog.makeSound(); // Lassie: Woof woof! dog.sleep(); // Lassie: Overriding Zzzz....
如果有人可以帮助我;想知道所有这些之间是否存在战略差异? 所有这些不同方式的程序细微差别是什么?