JavaScript中构造器指的是什么

  介绍

小编给大家分享一下JavaScript中构造器指的是什么,希望大家阅读完这篇文章后大所收获、下面让我们一起去探讨吧!

对构造函数有很好的理解是你掌握JavaScript这门语言的重点。我们都知道JavaScript不像其他语言,它没有类关键字,但是它有跟函数非常相似的构造函数。这篇文章我们一起来详细地了解JavaScript构造函数如何构造对象。

构造函数跟普通函数非常相似,但是我们通过新关键字来使用它们。主要有两种类型的构造函数,本机构造函数(数组、对象)它们可以在执行环境中自动生成,还有自定义的构造函数,你可以定义自己的方法和属性。

当你想要创建很多相似的对象(拥有相同的属性和方法)的时候,使用构造函数是非常有效的。大部分程序员都遵循公约,使用大写字母开头来将构造函数和普通函数区分开看。看下面的代码。

功能书(){//未完成的代码   }   var myBook=新书();

最后一行代码创建了一个书对象,并把它赋值给变量;这样完成之后,即使本构造器没有做任何操作,myBook也是书实例。正如你看到的,除了首字母大写和使用新关键字之外,构造函数和普通函数并没有什么区别。

判断某个对象是否为某种实例,我们可以使用<代码>运算符操作符:

myBook instanceof书//=比;真正的   myBook instanceof字符串//=比;假

<>强注意:强如果右边不是一个函数的实例,那么将会报错:

myBook instanceof {};//=比;TypeError:无效& # 39;instanceof # 39;操作数({})

另一种方法是使用构造函数属性,所有对象实例都有一个构造函数属性,这个属性指向创建它的构造函数。

myBook。构造函数==书;//=比;真正的

就像myBook的构造函数指向书一样,所有对象都从它们的原型上继承了构造函数这个属性:

var s=新的字符串(“text");   年代。构造函数===字符串;//=比;真正的   “text"。构造函数===字符串;//=比;真正的   var o=新对象();   o。构造函数===对象;//=比;真正的   var o={};   o。构造函数===对象;//=比;真正的   var=new Array ();   一个。构造函数===数组;//=比;真正的   [].构造函数===数组;//=比;真正的

尽管使用构造函数可以用来检测实例类型,但是建议还是使用instanceof方法。因为构造函数属性是可以被重写的. .用起来不太靠谱。

构造函数就像饼干印模。同一印模制作出来的,都是同一个叼样(男人没一个好东西也是这个道理)。

功能书(名称、年){   this.name=名称;   这一点。=& # 39;(& # 39;+年+ & # 39;)& # 39;;   }

本构造器需要两个参数,当使用新关键字构造对象时,会把两个形参传书给对象的名字和年。

var firstBook=新书(“Pro AngularJS", 2014);   var secondBook=新书(“秘密的JavaScript Ninja", 2013);   var thirdBook=新书(“JavaScript Patterns", 2010);      console.log (firstBook.name firstBook.year);   console.log (secondBook.name secondBook.year);   console.log (thirdBook.name thirdBook.year);

 JavaScript中构造器指的是什么

如你所见,我们可以通过传不同参数,快速创建另一本书.JavaScript的数组(),日期()也将是这个道理。

Object.defineProperty方法可以在构造器中被使用来配置属性。

功能书(名字){   Object.defineProperty(这一点,“name", {   得到:函数(){   返回“书中说:“+名称;   },   设置:函数(新名称){   name=新名称;   },   可配置:假   });   }   var myBook=新书(“Web Applications"单页);   console.log (myBook.name);//=比;书:单页的Web应用程序//我们不能删除名称属性,因为“configurable"设置为假   删除myBook.name;   console.log (myBook.name);//=比;书:单页的Web应用程序//但我们可以改变名称属性的值   myBook.name=翱刹馐缘腏avaScript";   console.log (myBook.name);//=比;书:测试JavaScript

上面的代码中是调用了祖先的方法。它提供了getter和setter接口. get方法负责返回封装的值,setter方法接受参数,并把值赋给属性。当我们在某个属性上操作存取时,调用的就是这两个方法。通过配置可配置的,我们可以设置该值能否被删除。

JavaScript中构造器指的是什么