作家
登录

JavaScript深入之创建对象的多种方式以及优缺点

作者: 来源: 2017-05-12 10:49:36 阅读 我要评论

name); 
  • }; 
  •  
  • var person1 = new Person();  
  • 长处:办法不会从新创建

    缺点:1. 所有的属性和办法都共享 2. 不克不及初始化参数

    3.1 原型模式优化

    然则作者可能是欲望能像应用通俗Array一样应用SpecialArray,固然把specialarray当成函数也一样能用,然则这并不是作者的本意,也变得不优雅。

    1. function Person(name) { 
    2.  
    3.  
    4. Person.prototype = { 
    5.     name'kevin'
    6.     getName: function () { 
    7.         console.log(this.name); 
    8.     } 
    9. }; 
    10.  
    11. var person1 = new Person();  

    长处:封装性好了一点

    缺点:重写了原型,损掉了constructor属性

    3.2 原型模式优化

    1. function Person(name) { 
    2.  
    3.  
    4. Person.prototype = { 
    5.     constructor: Person, 
    6.     name'kevin'
    7.     getName: function () { 
    8.         console.log(this.name); 
    9.     } 
    10. }; 
    11.  
    12. var person1 = new Person();  

    长处:实例可以经由过程constructor属性找到所属构造函数

    缺点:原型模式该有的缺点照样有

    长处:该共享的共享,该私有的私有,应用最广泛的方法

    缺点:有的人就是欲望全部写在一路,即更好的封装性

    1. function Person(name) { 
    2.     this.name = name
    3.     if (typeof this.getName != "function") { 
    4.         Person.prototype.getName = function () { 
    5.             console.log(this.name); 
    6.         } 
    7.     } 
    8.  
    9. var person1 = new Person();  

    留意:应用动态原型模式时,不克不及用对象字面量重写原型

    解释锫为什么:

    1. function Person(name) { 
    2.     this.name = name
    3.     if (typeof this.getName != "function") { 
    4.         Person.prototype = { 
    5.             constructor: Person, 

        推荐阅读

        JavaScript异步与Promise实现

      【引自熊建刚的博客】媒介如不雅你已经对JavaScript异步有必定懂得,或者已经浏览过本系列的其他两篇文┞仿,那请持续浏览下一末节,若你还有困惑或者想懂得JavaScript异步机制与编程,可>>>详细阅读


      本文标题:JavaScript深入之创建对象的多种方式以及优缺点

      地址:http://www.17bianji.com/lsqh/35175.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)