ES5的用对象完成类的作用

// js完成类  ES5
// 因为函数始对象 所以写法不是唯一
// function Pf(){}更相符固有头脑
// 因为ES6增加了类,所以誊写变得跟轻易
var Pf = function(name,age){
    // 私有属性要领表面不能挪用,只要对象要领能够操纵,从而起到庇护数据的作用
    // 私有属性
    var secret = '小秘密'
    // 私有要领
    function secretfn(){
        console.log('私有要领')
        console.log("my secret is"+secret)
    }
    // 大众属性要领是每建立一个对象就会建立一个该属性或要领(消耗肯定把内存)
    // 共有实例属性
    this.name = name
    this.age = age
    //共有实例要领
    this.say = function(){
        console.log("my name is"+this.name,"my age is"+this.age)
        console.log('能够操纵私有属性与要领')
        secretfn()
    }
}
// 静态要领
Pf.f1 = function(){
    console.log('我是静态要领,只能用类直接挪用,实例对象不能挪用')
}
Pf.prototype = {
    constructor:Pf,// 这类增加原型要领须要重置制订对象。
    // 原型链上的要领为公有要领,由类建立出来的对象会指向该原型,不会从新建立该要领,然则优先级没有对象要领高
    // 其长处是节约内存
    say:function(){
        console.log("原型上的say")
        // 原型链上能够拿到共有属性,拿不到私有属性与要领
        console.log('我也能拿到数据'+this.name)
    }
    
}
var a = new Pf('ss',22)
a.say()
Pf.f1()

运转直接node
    原文作者:一笔一划
    原文地址: https://segmentfault.com/a/1190000018863811
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞