来了Java,我试图正确地理解Javascript OOP。我已经读过它,但是还没有直观地理解对象创建和继承这两种方法的区别和应用。
Object.create
据我了解:Object.create()将给定对象的原型设置为传递给.create()的对象?
例如。
const Cat = {
init: function(sound) {
this.sound = sound;
return this
},
makeSound: function() {
console.log(this.sound);
}
}
var mark = Object.create(Cat);
mark.init('meoow!');
mark.makeSound();
console.log(mark);
此处标记的原型对象被引用到Cat对象吗?对吧? 如果是这样
问题1:为什么JS不只是将父类的对象设置为子类(而不是其原型)?
问题2:将原型对象与每个对象链接到底有什么用?如果我们只有一个对象引用另一个对象,继承会不会更舒适?
问题3:我已经知道设置对象的原型字段不是一种好习惯吗?我们应该只使用实际的对象字段和方法,这是真的,为什么?即Cat.prototype.age = 10;
新对象()
在以下代码中...
function cat() {
this.sound = 'wooof!';
}
var filly = new cat();
console.log(filly.sound);
console.log(filly);
问题4: filly的实际对象继承了cat(或filly的原型对象)的属性?
似乎很明显我不理解JavaScript中可能如何,何时以及为何使用原型对象?
请帮助!