JS对象中的原型

理解JavaScript对象的原型与创建方法

对象的原型:每个对象都连接一个原型对象,并且它可以从中继承属性。所有通过对象字面量创建的对象都连接到object.prototype。当你创建一个新对象时,你可以选择某个对象作为它的原型。原型连接在更新时不起作用。当我们对某个对象作出改变时,不会触及该对象的原型。原型连接只有在检索值的时候才被用到。如果我们尝试去获取对象的某个属性值,但该对象没有此属性名,那么JS会试着从原型对象中获取属性值,如果那个原型对象也没有该属性,那么再从它的原型中找,以此类推,直到该过程最后到达终点Object.prototype。如果想要的属性完全不存在于原型链中,那么结果就是undefined值。这个过程成为“委托”。原型关系是一种动态的关系。如果我们添加一个新的属性到原型中,该属性会立即对所有基于该原型创建的对象可见。

//我们可以给object增加一个create方法。这个方法创建一个使用原对象作为其原型的新对象
if (typeof Object.beget !== 'function'){
    Object.create = function (o){
        var F = function (){};
        F.prototype = o;
        return new F()
    }
}
var stooge = {
    name: 'csh',
    age: 102
}
//新建一个对象,这个对象的原型是stooge对象
var another = Object.create(stooge);
another.name = 'abc'
console.log(another.name); //输出abc
delete another.name;
console.log(another.name); //输出csh

转载于:https://www.cnblogs.com/zhuifeng/p/3764848.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值