草庐IT

function-prototypes

全部标签

JavaScript 面向对象 : method definition with or without "prototype"

是这段代码吗,functionPerson(){functionmyMethod(){alert('hello');}this.method=myMethod;}相当于:functionPerson(){}Person.prototype.method2=function(){alert('hello');};如果是,我应该使用哪个方法定义,为什么? 最佳答案 在您的简单示例中,它们在功能上是等效的,但在幕后的工作方式却大不相同。函数的prototype属性实际上是“原型(prototype)模板”。它说“每当创建一个对象并且我被用

javascript - 关于 Function.prototype.bind() 的困惑

我是ES5的Function.prototype.bind和柯里化(Currying)参数(基本上是为函数创建默认参数)的super粉丝。我有点胡闹,但我再也无法弄清楚自己的构造了。这是我的Playground:functionhello(arg1,arg2){console.log('hello()');console.log('"this"is:',this);console.log('arguments:',arguments);}varfoo=Function.prototype.call.bind(hello,{what:'dafuq'},2);foo(42);日志输出如下:

javascript - 为什么 Array.prototype.every 在空数组上返回 true?

[].every(i=>iinstanceofNode)//->true为什么当数组为空时,JavaScript中数组的every方法返回true。我正在尝试像这样进行类型断言...constisT=(val,str)=>typeofval===strconstnT=(val,str)=>!isT(val,str)constis={}is.Undef=(...args)=>args.every(o=>isT(o,'undefined'))is.Def=(...args)=>args.every(o=>nT(o,'undefined'))is.Null=(...args)=>args.e

javascript - 在 JavaScript 中,什么是终极根,Object 还是 Function?

在JavaScript中,对象是所有实体的根还是函数是根?例如在下面的来源objects-functions-and-prototypes-in.html,首先作者说“Javascript中的每个实体都是一个对象”,后来又说“任何新对象只能作为函数的实例创建(即使你做'vara=newObject;',对象是一个功能顺便说一句)”。据我所知,作者基本上是在自相矛盾。而且我在很多关于JavaScript的其他资源中看到了同样困惑的评论。在Java中很容易,您知道任何类层次结构中的第一个实体都是Object类,但在JavaScript中,我看到的只是困惑。那么,有人可以澄清一下是对象在前还

javascript - AngularJS 指令 : put a call function in an attribute, 不包含另一个属性

我在追求什么我想创建一个ngLoad我网页上的图像指令。这是我的首选标记:我有什么JSFiddle现在,我有一个imgLoad带有ngLoad的指令在scope中指定,像这样:varapp=angular.module('app',[]);app.directive('imgLoad',[function(){return{restrict:'A',scope:{loadHandler:'&ngLoad'},link:function(scope,element,attr){element.on('load',scope.loadHandler);}};}]);生成的标记是:编辑:我之

javascript - Function.bind.bind(Function.call) 如何取消柯里化(Currying)?

我的代码库中有这一行:varuncurryThis=Function.bind.bind(Function.call);我正在努力解决这个问题。据推测,它是uncurries。我该如何解决这个问题?我猜这是Function.bind的一个版本,它自己的this绑定(bind)到Function.call。对我的帮助还不够。而且我还没有发现任何用途,所以我什至不确定您是将其独立调用还是需要将其“作为一种方法”调用,只是,您知道,先绑定(bind)它。 最佳答案 它将call函数传递给bind函数,bind函数本身就是this的值>。因

javascript - 空原型(prototype)、Object.prototype 和 Object.create

为什么将构造函数的原型(prototype)属性设置为null不会阻止从该函数创建的对象调用Object.prototype上的方法,在与将原型(prototype)设置为Object.create(null)的方式相同吗?也就是为什么会这样:functionFoo(){}Foo.prototype=null;console.log(newFoo().toString);//outputsfunctiontoString(){[nativecode]}(orwhatever)functionFoo(){}Foo.prototype=Object.create(null);console

javascript - 为什么许多 JavaScript 库以 "(function () {"开头?

为什么很多javascript库看起来像这样:(function(){/*codegoeshere*/})();它似乎定义了一个立即调用的未命名函数。为什么要付出这样的努力? 最佳答案 这是在JavaScript中进行命名空间的标准方法。如果你只是声明varmy_cool_variable=5;它将是全局的,可能会与使用相同变量的其他库冲突。但是,如果你这样做了(function(){varmy_cool_variable=5;})();它现在是匿名函数的局部变量,在该函数范围之外是不可见的。您仍然可以通过不在变量前声明var来公开

Javascript 原型(prototype)和实例创建

我很抱歉,因为这个话题经常出现,但在我今天阅读的任何内容中我都无法充分解释这一点。我正在尝试制作一个简单的集合类(同时学习javascript原型(prototype)),旨在存储具有“名称”属性的对象,并允许通过索引或值访问其成员。到目前为止,我得到了这个:functionCollection(){}Collection.prototype.constructor=Collection;Collection.prototype._innerList=[];Collection.prototype._xref={};Collection.prototype.count=function

javascript - 如何计算JavaScript中多个数组的交集?什么是 [等于 : function] mean?

我知道thisquestion,simplestcodeforarrayintersection但是所有的解决方案都假定数组的数量是两个,这在我的情况下不能确定。我在页面上有div,其中的数据包含数组。我想找到所有数组共有的值。我不知道我会提前有多少个div/数组。计算所有数组共有的值的最佳方法是什么?vararray1=["Lorem","ipsum","dolor"];vararray2=["Lorem","ipsum","quick","brown","foo"];vararray3=["Jumps","Over","Lazy","Lorem"];vararray4=[1337,