预览加载中,请您耐心等待几秒...
1/5
2/5
3/5
4/5
5/5

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

JavaScript精炼之构造函数 JavaScript精炼之构造函数除了创建对象,构造函数(constructor)还做了另一件有用的事情—自动为创建的新对象设置了原型对象(prototypeobject)。原型对象存放于ConstructorFunction.prototype属性中。例如,我们重写之前例子,使用构造函数创建对象“b”和“c”,那么对象”a”则扮演了“Foo.prototype”这个角色://构造函数functionFoo(y){//构造函数将会以特定模式创建对象:被创建的对象都会有"y"属性this.y=y;}//"Foo.prototype"存放了新建对象的原型引用//所以我们可以将之用于定义继承和共享属性或方法//所以,和上例一样,我们有了如下代码://继承属性"x"Foo.prototype.x=;//继承方法"calculate"Foo.prototype.calculate=function(z){returnthis.x+this.y+z;};//使用foo模式创建"b"and"c"varb=newFoo();varc=newFoo();//调用继承的方法b.calculate();//c.calculate();////让我们看看是否使用了预期的属性console.log(b.__proto__===Foo.prototype,//truec.__proto__===Foo.prototype,//true//"Foo.prototype"自动创建了一个特殊的属性"constructor"//指向a的构造函数本身//实例"b"和"c"可以通过授权找到它并用以检测自己的构造函数b.constructor===Foo,//truec.constructor===Foo,//trueFoo.prototype.constructor===Foo//trueb.calculate===b.__proto__.calculate,//trueb.__proto__.calculate===Foo.prototype.calculate//true);上述代码可表示为如下的关系:构造函数与对象之间的关系上述图示可以看出,每一个object都有一个prototype.构造函数Foo也拥有自己的__proto__,也就是Function.prototype,而Function.prototype的__proto__指向了Object.prototype.重申一遍,Foo.prototype只是一个显式的属性,也就是b和c的__proto__属性。这个问题完整和详细的解释有两个部分:面向对象编程.一般理论(OOP.Thegeneraltheory),描述了不同的面向对象的范式与风格(OOPparadigmsandstylistics),以及与ECMAScript的比较。面向对象编程.ECMAScript实现(OOP.ECMAScriptimplementation),专门讲述了ECMAScript中的面向对象编程。现在,我们已经了解了基本的object原理,那么我们接下去来看看ECMAScript里面的.程序执行环境[runtimeprogramexecution].这就是通常称为的“执行上下文堆栈”[executioncontextstack]。每一个元素都可以抽象的理解为object。你也许发现了,没错,在ECMAScript中,几乎处处都能看到object的身影。下面给大家介绍JavaScriptconstructor属性详解对象的constructor属性用于返回创建该对象的函数,也就是我们常说的构造函数。在JavaScript中,每个具有原型的对象都会自动获得constructor属性。除了arguments、Enumerator、Error、Global、Math、RegExp、RegularExpression等一些特殊对象之外,其他所有的JavaScript内置对象都具备constructor属性。例如:Array、Boolean、Date、Function、Number、Object、String等。所有主流浏览器均支持该属性。语法object.constructor返回值对象的constructor属性返回创建该对象的函数的引用。示例&说明以下代码中的[nativecode],表示这是JavaScript的底层内部代码实现,无法显示代码细节。//字符串:String()varstr=