理解原型和原型链

原型: prototpye

var A = function() {

    this.x = 1;

    this.getY = function() {
        return 3;
    }

    this.getX = function() {
        return this.x;
    }

};

A.prototype.getX = function() {
    return 4;
}
A.prototype.x = 4;

var o = new A();
var o1 = new A();

调用o.getX 返回 1 当function中没有getX方法时,返回 4; function中的方法和属性是私有的,原型重定义的是共有的 可用下图所示: 这里写图片描述
这样的话:基于JS面向对象,属性一般是私有,方法可以放在原型中创建,不过在原型中创建的时候,调用属性时需要用this.属性;

原型链 _proto_

proto相当于o的一个私有属性,不过里面有一个指向,指向了prototype
可以通过看代码的数据结构
这里写图片描述

对于JavaScript而言,每个对象创建的时候,都默认有一个 proto
这个proto中存储了prototye中定义的属性和方法,然后proto 中又有一个proto 这就形成了一个原型链
当我proto最后指向了 object.proto 。object.proto 中的proto 指向了null 然后结束 相当于java的链表 List;
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值