草庐IT

Prototype

全部标签

javascript - 如何创建将方法添加到原型(prototype)并正确使用 "class"的 JavaScript 'this'

这个问题在这里已经有了答案:Howdoesthe"this"keywordwork,andwhenshoulditbeused?(22个答案)关闭8年前。我一直被教导在JavaScript中模拟类的正确方法是在将成为类的函数之外的原型(prototype)中添加方法,如下所示:functionmyClass(){this.myProp="foo";}myClass.prototype.myMethod=function(){console.log(this);}myObj=newmyClass();myObj.myMethod();我一直遇到this的问题在我的方法中解析为全局Wind

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 - [].__proto__ === Array.prototype//=== [Symbol(Symbol.unscopables) : Object]?

定义一个实用函数来检查对象的原型(prototype)链(在Chrome中),我得到了数组。这样看来[].__proto__===Array.prototype//===[Symbol(Symbol.unscopables):Object]我理解第一个平等。我不知道第三项是什么,虽然我听说ES6将有Symbols。这个东西和Array.prototype是一样的吗?为什么会这样打印?编辑:chrome://版本信息:GoogleChrome40.0.2214.111(OfficialBuild)Revision6f7d3278c39ba2de437c55ae7e380c6b3641e9

JavaScript: "TypeError: Illegal invocation"但我没有调用任何函数

注意:我已经搜索过这个错误,但我发现的所有内容都是关于调用函数的。我没有调用任何函数。我只是想访问一个属性。当我执行这段简单的代码时出现错误:vara=document.getElementById("something");varb=Object.create(a);console.log(b.baseURI)//ThrowserrorwithanypropertyofaHi!Iexistjustfordemopurposes.Thiserrorcanoccurwithanyelement.我不知道为什么会这样。如果我尝试从b...的原型(prototype)中获取属性,代码工作正常

javascript - JS 原型(prototype)与闭包

我有一个JavaScript对象可以做这样的事情——使用闭包来模拟私有(private)函数/变量与公共(public)函数/变量:varmyCoolObject=function(x,y){varprop1="acoolprop1value";varnegX=x*-1;varnegY=y*-1;varxyProduct=x*y;return{PublicProp1:prop1,getXYProduct:function(){returnxyProduct;},getNegX:function(){returnnegX;},getNegY:function(){returnnegY;}

javascript - Array.prototype 与 [] perf

我还没有真正有机会研究的快速问题。在调用/应用类型的上下文中使用时,哪个性能更高:Array.prototypevs[]?例如:functiontest1(){returnArray.prototype.splice.apply(arguments,[1,2]);}test1([1,2,3,4,5,6,7,8,9]);functiontest2(){return[].splice.apply(arguments,[1,2]);}test1([1,2,3,4,5,6,7,8,9]);我的想法:我会假设Array.prototype方式性能更高,因为原型(prototype)函数可以重用并

javascript - 直接在函数声明上使用 function.prototype.bind

为什么允许这样做?varf=function(){console.log(this.x);}.bind({x:1})();为什么这不是或更好,为什么我在这种情况下会出现语法错误?functionf(){console.log(this.x);}.bind({x:1})();那么,为什么我需要函数表达式语法来完成这项工作,有没有办法直接在函数声明上使用bind方法? 最佳答案 第二个示例有效,但语法略有偏差:将函数括在括号中。我不得不说我不完全确定为什么。好像没有parent也行吧?:P(functionf(){console.log

javascript - 代码挑战 : Create a class Foo that tracks the number of total object instances

我正在尝试解决工作应用程序的代码挑战,但我遇到了困难,非常感谢任何帮助。问题:创建一个Foo类,它有一个名为refCount的方法。在类或其任何实例上调用refCount应该返回存在的实例总数。示例:varf1=newFoo();f1.refCount();//shouldbe1Foo.refCount();//shouldbe1varf2=newFoo();f1.refCount();//shouldbe2f2.refCount();//shouldbe2Foo.refCount();//shouldbe2到目前为止我有这样的事情:functionFoo(){this.refCoun

javascript - javascript Array.prototype.filter() 的时间复杂度?

Array.prototype.filter的大O是什么?我已查看文档(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter),但无法解决。 最佳答案 O(N)例子:varwords=['spray','limit','elite','exuberant','destruction','present'];constresult=words.filter(word=>isBig(word));func

javascript - 如何在 Vue (Typescript) 中使用 axios?

我想在vue(Typescript)中使用axios,但我的代码遇到了麻烦。这是我的main.tsimportaxiosfrom'axios'Vue.prototype.$axios=axiosaxios.defaults.baseURL='http://192.168.1.225:8088'这是我的vue代码screenshothere这是我第一次使用typescript,之前我在javaScript中用过其他方式,我没有任何问题,那么我如何在TypeScript中使用它呢?感谢您抽出时间提供解决方案。 最佳答案 我这样做并且在m