欢迎来到天天文库
浏览记录
ID:30517266
大小:20.26 KB
页数:14页
时间:2018-12-31
《浅析在javascript中创建对象的各种模式》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、我真正系统地接触和学习党的基本知识是在这次中级党校的培训班上。通过学习,了解了党的发展历程,对党的性质、宗旨、任务等基本知识有了进一步的了解浅析在javascript中创建对象的各种模式 下面小编就为大家带来一篇浅析在javascript中创建对象的各种模式。小编觉得挺不错的,现在分享给大家,也给大家做个参考。 最近在看《javascript高级程序设计》(第二版) javascript中对象的创建 •工厂模式 •构造函数模式 •原型模式 •结合构造函数和原型模式 •原型动态模式 面向对象的语言大都有一个类的概念,通过类可以创建多个具有相同方法和属性的
2、对象。虽然从技术上讲,javascript是一门面向对象的语言,但是javascript没有类的概念,一切都是对象。任意一个对象都是某种引用类型的实例,都是通过已有的引用类型创建;引用类型可以是原生的,也可以是自定义的。原生的引用类型有:Object、Array、Data、RegExp、Function。!引用类型就是一种数据结构,将数据和功能组织在一起,通常被称为类。缺乏类概念的javascript中,需要解决的问题就是如何高效的创建对象。 1.1.0.创建对象的一般方法对党的认识也有了进一步的提高。才真正体会到了中国共产党的伟大、光荣和正确,更感到只有中国共产党是
3、全中国最广大人民利益的忠实代表我真正系统地接触和学习党的基本知识是在这次中级党校的培训班上。通过学习,了解了党的发展历程,对党的性质、宗旨、任务等基本知识有了进一步的了解 varperson={};//对象字面量表示,等同于varperson=newObjcect(); person.name='evansdiy'; person.age='22'; person.friends=['ajiao','tiantian','pangzi']; person.logName=function(){ console.log(this.name); } 基于O
4、bject引用类型,创建了一个对象,该对象包含四个属性,其中一个为方法。如果需要很多类似person的实例,那就会有许多重复的代码。 1.1.1.工厂模式[top] 通过一个可以包含了对象细节的函数来创建对象,然后返回这个对象。 functionperson(name,age,friends){ varo={ name:name, age:age, friends:friends, logName:function(){ console.log(this.name); }对党的认识也有了进一步的提高。才真正体会到了中国共产
5、党的伟大、光荣和正确,更感到只有中国共产党是全中国最广大人民利益的忠实代表我真正系统地接触和学习党的基本知识是在这次中级党校的培训班上。通过学习,了解了党的发展历程,对党的性质、宗旨、任务等基本知识有了进一步的了解 }; returno; } varperson1=person('Evansdiy','22',['ajiao','tiantian','pangzi']); 每次调用person函数,都会通过该函数内部的对象o创建新的对象,然后返回,除此之外,这个为了创建新对象而存在的内部对象o没有其他的用途。另外,无法判断工厂模式创建的对象的类型。 1.
6、1.2.构造函数模式[top] functionPerson(name,age,job){ this.name=name; this.age=age; this.job=job; this.logName=function(){ console.log(this.name); } } //通过new操作符创建Person的实例 varperson1=newPerson('boy-a','22','worker'); varperson2=newPerson('girl-b','23','teacher');对党的认识也有了进一步的提高
7、。才真正体会到了中国共产党的伟大、光荣和正确,更感到只有中国共产党是全中国最广大人民利益的忠实代表我真正系统地接触和学习党的基本知识是在这次中级党校的培训班上。通过学习,了解了党的发展历程,对党的性质、宗旨、任务等基本知识有了进一步的了解 person1.logName();//boy-a person2.logName();//girl-a 对比工厂模式,可以发现,这里并不需要创建中间对象,没有return。另外,可以将构造函数的实例标识为一种特定的类型,这就解决了对象识别的问题(通过检查实例的constructor属性,或利用i
此文档下载收益归作者所有