欢迎来到天天文库
浏览记录
ID:30517630
大小:18.00 KB
页数:9页
时间:2018-12-31
《深入理解javascript系列(26):设计模式之构造函数模式详解》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、我真正系统地接触和学习党的基本知识是在这次中级党校的培训班上。通过学习,了解了党的发展历程,对党的性质、宗旨、任务等基本知识有了进一步的了解深入理解JavaScript系列(26):设计模式之构造函数模式详解 这篇文章主要介绍了深入理解JavaScript系列(26):设计模式之构造函数模式详解,本文讲解了基本用法、构造函数与原型、只能用new吗?、强制使用new、原始包装函数等内容,需要的朋友可以参考下 介绍 构造函数大家都很熟悉了,不过如果你是新手,还是有必要来了解一下什么叫构造函数的。构造函数用于创建特定类型的对象——不仅声明了使用的对象,
2、构造函数还可以接受参数以便第一次创建对象的时候设置对象的成员值。你可以自定义自己的构造函数,然后在里面声明自定义类型对象的属性或方法。 基本用法 在JavaScript里,构造函数通常是认为用来实现实例的,JavaScript没有类的概念,但是有特殊的构造函数。通过new关键字来调用定义的否早函数,你可以告诉JavaScript你要创建一个新对象并且新对象的成员声明都是构造函数里定义的。在构造函数内部,this关键字引用的是新创建的对象。基本用法如下: 代码如下: functionCar(model,year,miles){对党的认识也有了进一
3、步的提高。才真正体会到了中国共产党的伟大、光荣和正确,更感到只有中国共产党是全中国最广大人民利益的忠实代表我真正系统地接触和学习党的基本知识是在这次中级党校的培训班上。通过学习,了解了党的发展历程,对党的性质、宗旨、任务等基本知识有了进一步的了解 this.model=model; this.year=year; this.miles=miles; this.output=function(){ returnthis.model+"走了"+this.miles+"公里"; }; } vartom=newCar("大叔",XX,XX0);
4、 vardudu=newCar("Dudu",XX,5000); console.log(tom.output()); console.log(dudu.output()); 上面的例子是个非常简单的构造函数模式,但是有点小问题。首先是使用继承很麻烦了,其次output()在每次创建对象的时候都重新定义了,最好的方法是让所有Car类型的实例都共享这个output()方法,这样如果有大批量的实例的话,就会节约很多内存。 解决这个问题,我们可以使用如下方式: 代码如下: functionCar(model,year,miles){ this
5、.model=model; this.year=year; this.miles=miles;对党的认识也有了进一步的提高。才真正体会到了中国共产党的伟大、光荣和正确,更感到只有中国共产党是全中国最广大人民利益的忠实代表我真正系统地接触和学习党的基本知识是在这次中级党校的培训班上。通过学习,了解了党的发展历程,对党的性质、宗旨、任务等基本知识有了进一步的了解 this.output=formatCar; } functionformatCar(){ returnthis.model+"走了"+this.miles+"公里"; } 这个方
6、式虽然可用,但是我们有如下更好的方式。 构造函数与原型 JavaScript里函数有个原型属性叫prototype,当调用构造函数创建对象的时候,所有该构造函数原型的属性在新创建对象上都可用。按照这样,多个Car对象实例可以共享同一个原型,我们再扩展一下上例的代码: 代码如下: functionCar(model,year,miles){ this.model=model; this.year=year; this.miles=miles; } /* 注意:这里我们使用了Object.prototype.方法名,而不是Object.
7、prototype 主要是用来避免重写定义原型prototype对象 */对党的认识也有了进一步的提高。才真正体会到了中国共产党的伟大、光荣和正确,更感到只有中国共产党是全中国最广大人民利益的忠实代表我真正系统地接触和学习党的基本知识是在这次中级党校的培训班上。通过学习,了解了党的发展历程,对党的性质、宗旨、任务等基本知识有了进一步的了解 Car.prototype.output=function(){ returnthis.model+"走了"+this.miles+"公里"; }; vartom=newCar("大叔",XX,XX0);
8、 vardudu=newCar("Dudu",XX,5000); console.log(
此文档下载收益归作者所有