[英]How does inheritance work in ES5-Javascript?
对于以下代码,
var customer={
name: "Tom Smith",
speak: function(){
return "My name is " + this['name'];
},
address: {
street: '123 Main St',
city: "Pittsburgh",
state: "PA"
}
};
下面是我对客户对象的可视化,
我的问题:
customer
对象是否仅继承Object.prototype
属性(内置)?
Object
函数类型object的属性(内置)是否也用于继承?
如果是, customer
对象继承Object
属性的语法是什么?
以下是我对客户对象的可视化
如果您使用[[prototype]]而不是__proto__会更好-如您所见, .__proto__
只是从Object.prototype
继承的吸气剂/设置剂。
客户对象是否仅继承
Object.prototype
属性(内置)?
是。 尽管您可以将自己的属性添加到Object.prototype
,但是它们也将被继承,不仅是内置的。
对象的属性(内置)是否也用于继承?
否。它们是静态函数,应该以对象作为其参数而不是对象方法来调用。
客户对象继承对象属性的语法是什么?
Object
是一个函数,通常您不想从它继承。 如果确实需要,可以使用Object.create(Object)
。
此外,ES6添加了一种新的方法来实现此目的,因为class
es也从其父class
继承静态方法:
class MyObject extends Object {
static myCreate(x) {
return this.create(x);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.