最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

JavaScrpt对象如何创建和构造函数模式代码详解

来源:动视网 责编:小采 时间:2020-11-27 20:15:28
文档

JavaScrpt对象如何创建和构造函数模式代码详解

JavaScrpt对象如何创建和构造函数模式代码详解:javascript面向对象知识很广泛,想深入理解需要花费一些时间对象的创建:1 创建一个面向对象var obj = new Object(); obj.name = 'haha'; obj.showName = function(){ alert(obj.name); } obj.showName();
推荐度:
导读JavaScrpt对象如何创建和构造函数模式代码详解:javascript面向对象知识很广泛,想深入理解需要花费一些时间对象的创建:1 创建一个面向对象var obj = new Object(); obj.name = 'haha'; obj.showName = function(){ alert(obj.name); } obj.showName();


javascript面向对象知识很广泛,想深入理解需要花费一些时间

对象的创建:

1 创建一个面向对象

缺点:当我们想创建多个面向对象的时候,重复代码过多,需要封装,所以有了工厂方法。

2 工厂方式

缺点:无法识别创建的对象的类型。因为全部都是Object,没有区分度,不像Date、Array等,因此出现了构造函数模式。

3 构造函数模式

我们通过这二个方面来改变:

函数名首字母大写

这是为了区别于普通的函数,构造函数本身其实就是普通的函数,只是我们专门用它来实现了构造的功能,所以专门起了一个名字叫构造函数,任何函数都可以成为构造函数,这取决于你调用函数的方式,当使用了New的方式调用就成了构造函数。

New 关键字调用

调用函数的时候用了 New关键字,那么New到底做了什么?用不用New有什么区别?再来看下面的例子

我们会发现当用New去调用一个函数的时候,this的指向会不一样。其实New主要做了下面这些事,不过下面写的只是大概的行为,并不是内部源码。

函数构造模式存在的问题:

缺点:可见这两个对象并不是共用一个方法,每new一次,系统都会新创建一个内存,这两个对象各自有各自的地盘,但他们具有相同的功能,还不共用,肯定不是我们所希望的。所以就有了下一种方法,原型+构造模式

4 原型+构造模式

原型:每个函数都有一个prototype属性,它是一个对象,也称作原型对象,我们可以把方法和属性写在它上面(不过原型对象不仅仅有我们写的属性和方法,还有别的,下面会介绍),而通过这个函数创建出来的实例对象,都能共享这个原型对象下的方法和属性。所以我们只需要把想要共享的东西放在函数的prototype下,不想共享的东西通过构造函数来创建就可以了。
看个栗子(原型+构造)

测试为true,可见showName()方法是共享的,也就是说他们共用一个内存,更进一步的说它们存在引用关系,也就是说你更改了p1的showName也会影响p2的showName。

文档

JavaScrpt对象如何创建和构造函数模式代码详解

JavaScrpt对象如何创建和构造函数模式代码详解:javascript面向对象知识很广泛,想深入理解需要花费一些时间对象的创建:1 创建一个面向对象var obj = new Object(); obj.name = 'haha'; obj.showName = function(){ alert(obj.name); } obj.showName();
推荐度:
标签: 创建 代码 对象
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top