对于Java,我正试图正确理解JavaScriptOOP。我读过这方面的文章,但并没有直观地理解对象创建和继承这两种方法的区别和应用。
对象.创建
据我所知: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);
这里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:
菲莉的实际对象继承了猫(或菲莉的原型对象)的属性?
很明显,我不明白javascript中如何、何时以及为什么使用原型对象?
请帮助!