资讯专栏INFORMATION COLUMN

ES5的用对象实现类的作用

bang590 / 3354人阅读

摘要:原型链上的方法为公有方法,由类创建出来的对象会指向该原型,不会重新创建该方法,但是优先级没有对象方法高其优点是节省内存原型上的原型链上可以拿到共有属性,拿不到私有属性与方法我也能拿到数据运行直接

// 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://www.ucloud.cn/yun/103512.html

相关文章

  • 如何继承Date对象?由一道题彻底弄懂JS继承。

    摘要:前言见解有限,如有描述不当之处,请帮忙及时指出,如有错误,会及时修正。倘若用的是中文搜索。所以最终的实例对象仍然能进行正常的原型链回溯,回溯到原本的所有原型方法这样通过一个巧妙的欺骗技巧,就实现了完美的继承。 前言 见解有限,如有描述不当之处,请帮忙及时指出,如有错误,会及时修正。 20180201更新: 修改用词描述,如组合寄生式改成寄生组合式,修改多处笔误(感谢@Yao Ding的...

    sunnyxd 评论0 收藏0
  • 重新认识JavaScript面向对象: 从ES5到ES6

    摘要:基于原型的面向对象在基于原型的语言中如并不存在这种区别它只有对象不论是构造函数,实例,原型本身都是对象。允许动态地向单个的对象或者整个对象集中添加或移除属性。为了解决以上两个问题,提供了构造函数创建对象的方式。 showImg(https://segmentfault.com/img/remote/1460000013229218); 一. 重新认识面向对象 1. JavaScript...

    VishKozus 评论0 收藏0
  • 重新认识JavaScript面向对象: 从ES5到ES6

    摘要:基于原型的面向对象在基于原型的语言中如并不存在这种区别它只有对象不论是构造函数,实例,原型本身都是对象。允许动态地向单个的对象或者整个对象集中添加或移除属性。为了解决以上两个问题,提供了构造函数创建对象的方式。 showImg(https://segmentfault.com/img/remote/1460000013229218); 一. 重新认识面向对象 1. JavaScript...

    用户83 评论0 收藏0
  • 详解javascript的类

    摘要:原文地址详解的类博主博客地址的个人博客从当初的一个弹窗语言,一步步发展成为现在前后端通吃的庞然大物。那么,的类又该怎么定义呢在面向对象编程中,类是对象的模板,定义了同一组对象又称实例共有的属性和方法。这个等同于的属性现已弃用。。 前言 生活有度,人生添寿。 原文地址:详解javascript的类 博主博客地址:Damonare的个人博客   Javascript从当初的一个弹窗语言,一...

    hufeng 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<