繁体   English   中英

继承如何在ES5-Javascript中起作用?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM