作家
登录

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

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

var person1 = new Person('kevin'); 
  • var person2 = new Person('daisy'); 
  •  
  • person1.getName(); // kevin 
  • person2.getName();  // daisy  
  • 5.1 寄生构造函数模式

    1. function Person(name) { 
    2.  
    3.     var o = new Object(); 
    4.     o.name = name
    5.     o.getName = function () { 
    6.         console.log(this.name); 
    7.     }; 
    8.  
    9.     return o; 
    10.  
    11.  
    12. var person1 = new Person('kevin'); 
    13. console.log(person1 instanceof Person) // false 
    14. console.log(person1 instanceof Object)  // true  

    寄生构造函数模式,我小我认为应当如许读: 寄生-构造函数-模式,也就是说寄生在构造函数的一种办法。

    如许办法可以在间谍作况下应用。比如我们想创建一个具有额外办法的特别数组,然则又不想直接修改Array构造函数,我们可以如许写:

    1. function SpecialArray() { 
    2.     var values = new Array(); 
    3.  
    4.     for (var i = 0, len = arguments.length; i < len; i++) { 
    5.         values.push(arguments[i]); 
    6.     } 
    7.  
    8.     values.toPipedString = function () { 
    9.         return this.join("|"); 
    10.     }; 
    11.     return values
    12.  
    13. var colors = new SpecialArray('red''blue''green'); 
    14. var colors2 = SpecialArray('red2''blue2''green2'); 
    15.  
    16.  
    17. console.log(colors); 
    18. console.log(colors.toPipedString()); // red|blue|green 
    19.  
    20. console.log(colors2); 
    21. console.log(colors2.toPipedString()); // red2|blue2|green2  

    你会发明,其实所谓的寄生构造函数模式就是比工厂模式在创建对象的时刻,多应用了一个new,实际上两者的结不雅是一样的。

    在可以应用其他模式的情况下,不要应用这种模式。

    然则值得一提的是,膳绫擎例子中的轮回:


        推荐阅读

        JavaScript异步与Promise实现

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


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

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

    关键词: 探索发现

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

    网友点评
    自媒体专栏

    评论

    热度

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