ES5实现类

2 篇文章 0 订阅
2 篇文章 0 订阅
// 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()

运行可新建js文件,然后node

个人浅见,望指正。
(学习随笔 4.14)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值