草庐IT

构造器

全部标签

javascript - 卡住构造函数原型(prototype)的副作用

我注意到卡住构造函数的原型(prototype)有一个副作用,基本上会破坏构造函数链:functionA(x){this.x=x;}functionB(x,y){A.call(this,x);this.y=y;}B.prototype=newA();Object.freeze(B.prototype);b=newB(1,2)//Iexpectedb.xtobe1herebutit'sundefined这是一个演示问题的fiddle:http://jsfiddle.net/jhpxv20b/2/b.x最后未定义是否有充分的理由?如果这不是错误,那么fiddle中的x2怎么会是1?

javascript - 简单对象 vs. 工厂 vs. 构造函数——实例

在JavaScript中创建对象的三种方式:通过简单的对象创建通过工厂功能通过构造函数简单的对象创建:varronaldo={name:"Ronaldo",age:"35",quote:"HiIamRonaldo",salary:function(x){returnx+2500;}};工厂函数:functionhuman(x,y,z,i){return{name:x,age:y,quote:z,salary:function(i){returni+2500;}}};varZini=human('Zenidan','41','IamZidane',7500);构造函数:varhuman=

javascript - 如何使用 Bluebird 在构造函数构建的 "class"上 promise 导出的函数

我有一个服务,PageService,我这样测试(简化)...vardatabase=require("../database/database");varPageService=require("./pageService");describe("PageService",function(){varpageService={};before(function(done){pageService=newPageService(database);}it("cangetallPages",function(done){pageService.getAll(function(err,pa

javascript - 数组构造函数未按预期工作

这个问题在这里已经有了答案:UndefinedvaluesinArray(len)initializer(5个答案)关闭6年前。我想创建固定长度的空数组,然后在其上使用.map返回新数组。但是,它没有按预期工作。根据mdndocs:IftheonlyargumentpassedtotheArrayconstructorisanintegerbetween0and232-1(inclusive),thisreturnsanewJavaScriptarraywithlengthsettothatnumber.newArray(3)返回[undefined×3]。不应该是:[undefine

javascript - 通过原型(prototype)将计算的可观察对象添加到构造函数

我正在使用Knockout.js2.0,我正在尝试通过添加计算可观察对象来扩展我创建的构造函数的原型(prototype),但它会抛出“self.IsSubDomain不是函数”。我该如何解决这个错误?有没有另一种方法可以扩展构造函数来解决这个问题?http://jsfiddle.net/StrandedPirate/J44S4/3/注意:我知道我可以在构造函数的闭包内定义计算的可观察对象,但我正在为knockoutView模型构建一个自动代码生成器,我需要能够通过原型(prototype)属性扩展我的对象。 最佳答案 我也是ans

javascript - 在所有子构造函数完成之前,父构造函数调用重写的函数

ECMAScript6(Harmony)引入了能够相互继承的类。假设我有一个游戏和一些基本类来描述机器人行为的基本内容。我简化了我的真实架构,但假设我需要运行render和其他一些例程,我将这些调用放在基本的Bot类中。classBot{constructor(){render();}render(){}}然后每个机器人都会覆盖它的render函数,并且可以在构造函数中进行一些设置:classDevilBotextendsBot{constructor(){super();this.color=0xB4D333;}render(){createSomeMesh(this.color);

javascript - TypeError : cognitiveServices. 人脸不是构造函数

我正在使用MicrosoftCognitiveServicesnodejs的api。我有以下代码constcognitiveServices=require('cognitive-services');constface=newcognitiveServices.face({API_KEY:yourApiKey})constparameters={returnFaceId:"true"returnFaceLandmarks:"false"};constbody={"url":"URLofinputimage"};face.detect({parameters,body}).then((

javascript - (React-Native) undefined 不是评估 'new FormData()' 的构造函数

在过去的两天里,我一直在努力解决这个问题,但无法弄清楚。我不明白这个错误。这是我的代码:try{varformData=newFormData();}catch(error){console.error('FormDataERROR',error);}这是错误:017-06-2113:49:02.761[error][tid:com.facebook.React.JavaScript]'FormDataERROR',{[TypeError:undefinedisnotaconstructor(evaluating'newFormData()')]line:98419,column:36

Javascript:沿着原型(prototype)链传递构造函数参数。有办法吗?

在下面的示例中,是否有一种方法可以构造对象,使“b”具有属性a1,并初始化为“2”?functionA(a1){this.a1=a1;}functionB(b1,a1){this.b1=b1;}B.prototype=newA;varb=newB('1','2');我基本上是在尝试在传统的面向对象语言(例如C#)中复制所谓的“调用基本构造函数”。 最佳答案 像这样?functionB(b1,a1){A.call(this,a1);this.b1=b1;} 关于Javascript:沿着原

javascript - 使用 instanceof 和检查构造函数有什么区别?

为什么下面两行返回不同的结果?("test"instanceofString)//returnsfalse("test".constructor==String)//returnstrue在chrome版本28.0.1500.95m的控制台测试对于原生类型,它的工作方式是否略有不同? 最佳答案 constructor只是内部[[prototype]]属性的一个属性,可以轻松操作:functionA(){}functionB(){}A.prototype.constructor=B;vara=newA();console.log(a.