网站链接怎么做跳转,怎么访问域名网站吗,资讯文章类网站织梦模板,让百度收入 wordpress构造器#xff1a;可以被 new 运算符调用, Boolean,Number,String,Date,RegExp,Error,Function,Array,Object 都是构造器#xff0c;他们有各自的实现方式。 比如#xff1a;var snew String(test) s的 [[Prototype]] 内部属性设定为标准内置的字符串原型对象可以被 new 运算符调用, Boolean,Number,String,Date,RegExp,Error,Function,Array,Object 都是构造器他们有各自的实现方式。 比如var snew String(test) s的 [[Prototype]] 内部属性设定为标准内置的字符串原型对象它是 String.prototype 的初始值。s的 [[Class]] 内部属性设定为 String。s的 [[Extensible]] 内部属性设定为 true。s的 [[PrimitiveValue]] 内部属性设定为 ToString(test)。 除这些内置全局对象的构造器之外还有创建的函数对象也可以用new运算符调用因为在创建函数对象的过程中设定了其内部属性[[Construct]],同时给它设置一个原型对象这个原型对象和new Object创建的对象一样。 这里说明下函数对象的[[call]] ,[[Construct]],var ffunction(a,b,c){}f()调用[[call]]内部属性方法建立执行环境返回返回值。var ffnew f()调用[[Construct]]内部方法创建一个空对象并对其设置内部属性和方法比如[[Prototype]]属性指向f的prototype。并以该对象为 this 值调用参数列表调用f的 [[Call]] 内部属性,如果返回一个对象则返回该对象否则返回此前创立的空对象。 所以每个构造器有一个原型对象prototype。 每个对象都有一个内部属性[[Prototype]],它指向自己的构造函数的原型对象同理其构造函数的原型对象也有有一个内部属性[[Prototype]]指向自己的原型对象这就形成原型链。当然这个原型链不是无穷的Object的原型对象的[[Prototype]]是null。拿Array为例Array的原型是数组原型对象Array构造器的[[Prototype]]是函数原型对象。当var arrnew Array()时arr的内部属性[[Prototype]]指向Array.prototype。 下面就来验证下 var aArray.call(this,2)结果a是长度为2的空数组。其中call方法就继承自 Function.prototype arr.push(1);push继承自 Array.prototype console.log(arr.prototype) //结果为 undefined,可见其没有原型对象了。var arrNewnew arr() //TypeError: object is not a function 因为没有内部属性[[Construct]],抛出异常 再看例2var ffunction(){}console.log(f.prototype) //Object {}var ffnew f() //{}对象转载于:https://www.cnblogs.com/mufc-go/p/3544852.html