草庐IT

function-prototypes

全部标签

javascript - Object.create 改变了 Chrome 中原型(prototype)对象的控制台输出?

今天我在玩游戏时注意到我在Chrome控制台中的一些对象显示为Object而不是构造函数名称。这很奇怪,所以我将其归结为以下代码:functionBaz(){this.baz=true;}varb=newBaz();varc=Object.create(b);console.log(b);//whyisboutputtingwithObjectnotBaz?在上面的代码b中,不是通过Object.create创建的,但在记录时它显示为Object。我没有打错字,错误地询问了c。当我什至还没有接触那个对象时,b的日志已经被改变了。创建另一个实例c,不应更改b。这一定是Chrome的错误吧

javascript - Array.find(value) 返回值 'is not a function'

我正在尝试在AngularJS数组上使用JavaScript的find()函数。这是合法的,对吧...?这个非常简单的代码给我带来了一些问题。这是说$scope.names.find(name1)的返回值不是函数。TypeError:Name1不是函数if($scope.names.find(name1)!==name1){$scope.names.push(name1);}我也试过...if($scope.names.find(name1)===undefined){$scope.names.push(name1);}和if(!$scope.names.find(name1)){$s

javascript - 为什么 Array.prototype.fill() 与 `for` 循环相比有如此大的性能差异?

在对Array.prototype.fill()方法进行一些测试(macOS上的Chrome)时,它显然比简单地创建您自己的慢了将近两倍(如果不是更慢的话)for循环并填充您的数组。显然在做类似的事情:for(vari=0;i对比Array.fill(0);Array.fill()方法将花费约210-250毫秒来填充大小为10000000的数组,而for循环将花费约70-90毫秒。似乎Array.fill()方法可以重写为简单地使用直接循环,因为您始终知道初始索引和目标索引。letarrayTest=newArray(10000000),startTime,endTime;startT

javascript - 使用@babel 转译 Array.prototype.flat?

我使用Array.prototype.flat无意中在我的React应用程序中引入了向后兼容性问题。我很惊讶这没有通过转译得到解决——我认为这会产生es2015兼容代码。我怎样才能让Babel7转译这个?(如果我对Babel6中的源代码的阅读是正确的,那么仍然有一个插件,但是自从它开始推广到浏览器支持已经被删除?)工具:@babel/core@7.0.0webpack@4.18.0我的顶级配置文件如下所示:webpack.config.jsvarpath=require('path')module.exports={entry:"./src/index.js",output:{path

javascript - 哪个 Javascript 函数库 : Underscore or wu. js 或 Functional 或...?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。我正在构建一个node.js应用程序,想知道要将哪个javascript库添加到我的库中。当前的候选名单包括:UnderscorewuFunctional在浏览器中工作的东西的奖励积分(所以我可以在客户端和服务器上使用它)。有什么想法吗?建议?对以上的看法?还有什么我应该调查的吗?

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 - 为什么控制台会注意到我在更改原型(prototype)之前更改了原型(prototype)?

我正在学习Javascript原型(prototype)并用这个javascript制作了一个Fiddle(http://jsfiddle.net/3MuZa/1/):functionAnimal(name,sound){this.name=name;this.sound=sound;}vardog=newAnimal("Dog","Bark");console.debug(dog.__proto__);Animal.prototype.makeSound=function(){console.log(this.sound);};有趣的是,console.debug(dog.__pro

javascript - Object.create( Class.prototype ) 在这段代码中做了什么?

我正在阅读mixinpatterninjavascript我遇到了这段我不理解的代码:SuperHero.prototype=Object.create(Person.prototype);原代码中实际上有一个错字(大写的H)。如果我小写它就可以了。但是,如果我真的删除该行,一切似乎都一样。完整代码如下:varPerson=function(firstName,lastName){this.firstName=firstName;this.lastName=lastName;this.gender="male";};//anewinstanceofPersoncantheneasily

javascript - 相当于 Array.prototype.map() 的 Dart?

我尝试从Dart中的map列表中获取ID。在JavaScript中会是这样的:varlist=[{id:3,name:'third'},{id:4,name:'fourth'}];varresult=list.map(function(x){returnx.id;});这应该给出结果[3,4]在Dart中是否有一种简单的方法可以做到这一点?到目前为止,我能够做到这一点(在Dart中):varlist=[{'id':3,'name':'third'},{'id':4,'name':'fourth'}];varresult=list.map((x)=>x['id']);结果是“Mapped

javascript - JS : How to track errors where there are many functions calls

每个函数都会创建新的错误对象。那么我怎样才能得到以前的错误呢?例如,这是我的代码:functionmain(callback){a(function(err){if(err){callback(newError('cannotrunmainfunction..'));return}})}functiona(callback){b(function(err){if(err){callback(newError('cannotrunbfunction'));return}})}functionb(callback){if(1==2)callback(newError('Errorinbfu