作家
登录

JavaScript创建对象的七种方式

作者: 来源: 2017-06-14 18:03:13 阅读 我要评论

应用此模式可以让每个实例都邑有本身的一份实例属性副本,但同时又共享着对办法的引用

如许的话,即使实例属性修改引用类型的值,也不会影响其他实例的属性值了

  1. function Person(name) { 
  2.   this.name = name 
  3.   this.friends = ['Shelby''Court'
  4. Person.prototype.sayName = function() { 
  5.   console.log(this.name
  6. var person1 = new Person() 
  7. var person2 = new Person() 
  8. person1.friends.push('Van'
  9. console.log(person1.friends)  //["Shelby""Court""Van"
  10. console.log(person2.friends) // ["Shelby""Court"
  11. console.log(person1.friends === person2.friends) //false 

动态原型模式

只有在sayName办法不存在的时刻,才会将它添加到原型中。这段代码只会初次调用构造函数的时刻才会履行。

此后原型已经完成初始化,不须要在做什么修改了

这里对原型所做的修改,可以或许急地点所有实例中获得反竽暌钩

其次,if语句检查的可所以初始化之后应当存在的任何属性或办法,所以不必用一大年夜堆的if语句检查每一个属性和办法,只要检查一个就行

寄生构造函数模式

这种模式的根本思惟就是创建一个函数,该函数的感化仅仅是封装创建对象的代码,然后再返回新建的对象

  1. function Person(name, job) { 
  2.   var o = new Object() 
  3.   o.name = name 
  4.   o.job = job 
  5.   o.sayName = function() { 
  6.     console.log(this.name
  7.   } 
  8.   return o 
  9. var person1 = new Person('Jiang''student'
  10. person1.sayName() 

这个模式,除了应用new操作符并把应用的包装函数叫做构造函数之外,和工厂模式几乎一样

构造函数如不雅不返回对象,默认也会返回一个新的对象,经由过程在构造函数的末尾添加一个return语句,可以重写调用构造函数时返回的值

稳妥构造函数模式

起首明白稳妥对象指的是没有公共属性,并且其办法也不引用this。

  1. function Person(name, job) { 
  2.   // 属性 
  3.   this.name = name 
  4.   this.job = job 
  5.  
  6.   // 办法 
  7.   if(typeof this.sayName !== 'function') { 
  8.     Person.prototype.sayName = function() { 
  9.        console.log(this.name

      推荐阅读

      最新Mac恶意软件现身,安全专家提醒不要过于自信

    在“暗网(Dark Web)” 上出现了两款针对 Mac 电脑的全新恶意软件,这两款 Mac 恶意软件分别是 MacSpy 和 MacRansom ,并经由过程 Maas 和 Raas 方法进击。两款恶意软件来自一个>>>详细阅读


    本文标题:JavaScript创建对象的七种方式

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

关键词: 探索发现

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

网友点评
自媒体专栏

评论

热度

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