JS学习-原型 继承

继承

原型链的理解:
原型链就是 对象.–proto–.--proto-- 这种链式的调用。本质上是向js中公用属性组成的对象的一种访问。
圣杯模式

function inherit(Target,Origin) {
    //定义一个构造函数F 做一个中间层
    function F() {}
    // F和origin公用一个原型
    F.prototype = Origin.prototype;
    // target去继承F
    Target.prototype = new F();
    // 将构造器指向Target
    Target.prototype.constuctor = Target;
    // 找超类 >>最终继承至哪
    Target.prototype.uber = Origin.prototype;
}
Father.prototype.lastName = "Deng";
function Father(){

}
function Son() {
    
}
inherit(Son,Father);
var son = new Son();
var father = new Father();
console.log(son.lastName) //Deng

闭包:私有化变量

function Deng(name,wife) {
    var perpareWife = "xiaozhang";
    this.name = name;
    this.wife = wife;
    this.divorce = function () {
        this.wife = perpareWife;
    }
    this.changePrepareWife = function (target) {
        perpareWife = target
    }
    this.sayPrepareWife = function () {
        console.log(perpareWife)
    }
    // 上面三个函数和Deng形成闭包,这三个函数拥有了Deng函数的执行期上下文
}
var deng = new Deng('deng','xiaoliu')
    // deng.divorce()
    // deng.wife  >> xiaozhang
    // deng.perpareWife >> undefined
    // 闭包的用途:变量私有化,邓哥可以操作变量,但是外部无法访问到他
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值