草庐IT

javascript - 在 es6 中覆盖库函数

我正在尝试覆盖库中的特定函数。就我而言,我试图覆盖Framework7上的一些功能.该库只有一个名为Framework7的类,在非ES6javascript中,创建应用程序实例如下所示:varapp=newFramework7();所以我假设它是可扩展的,所以这里是我的代码来扩展它:exportclassApplicationextendsFramework7{constructor(options){super(options);}}代码运行良好,但是,当我尝试重写其中一个函数时,比方说showPreloader,函数本身从未被调用exportclassApplicationexte

javascript - 使用 Array.map (TypeScript) 返回通用数组

我写了一个函数来获取一个字符串数组并应该将它转换成一个T数组:interfaceFooable{foo:string;}functionsimplifiedExample(bars:string[]):T[]{returnbars.map(bar=>{return{foo:bar}})}但是函数第一行的“bars”这个词用红线标出,表示:TS2322:Type'{foo:string;}[]'isnotassignabletotype'T[]'.Type'{foo:string}'isnotassignabletotype'T'.我怎样才能让它发挥作用? 最

javascript - 如何在不使用 JavaScript ES6 中的构造函数的情况下使用对象文字来创建类的实例?

我正在尝试学习JavaScriptES6,这是一种非常酷的语言,我认为我应该练习一下,但我做不到anexercise.那么如何使用对象字面量来复制一个类。例如类是:classPoint{constructor(x,y){this.x=x,this.y=y}add(other){returnnewPoint(this.x+other.x,this.y+other.y)}}我想在这里使用对象字面量来使输出为真。varfakePoint=YOUR_CODE_HEREconsole.log(fakePointinstanceofPoint) 最佳答案

javascript - 如何包装构造函数?

我有这个JavaScript:varType=function(name){this.name=name;};vart=newType();现在我要添加这个:varwrap=function(cls){//...wrapconstructorofType...this.extraField=1;};所以我可以这样做:wrap(Type);vart=newType();assertEquals(1,t.extraField);[编辑]我想要一个实例属性,而不是类(静态/共享)属性。包装函数中执行的代码应该像我将其粘贴到真正的构造函数中一样工作。Type的类型不应改变。

javascript - Function、Array 和 Object 构造函数的 length 属性是什么?

函数、数组和对象构造函数的长度静态属性是什么?静态方法是有道理的,但是长度静态属性呢?Object.getOwnPropertyNames(Array)["length","name","arguments","caller","prototype","isArray"]Object.getOwnPropertyNames(Function)["length","name","arguments","caller","prototype"]注意:我得到的是Function.prototype的length属性的答案,这里没有问到。Object.getOwnPropertyNames(F

javascript - 为什么 JavaScript 原始变量不可变而对象变量不可变?

有一种方法可以在原型(prototype)属性的帮助下将成员函数或成员属性添加到数字、字符串等...-变量:Number.prototype.member=function(){console.log('number-member-functioncalled');};或者在变量本身的原型(prototype)属性的帮助下:varnum=7;num.__proto__.member=function(){console.log('number-member-functioncalled');};就像任何其他类型的JavaScript类型一样。但是,在JavaScript中实现Primi

javascript - 使用 javascript 对象原型(prototype)扩展类时出现问题

我遇到了这个问题...B是基类,A是派生类...事件虽然A派生自B,但A的各种对象指向B的同一个对象。我知道我已经将B的对象分配给A的原型(prototype),以使A成为B的子对象。但是A的不同对象,应该有不同的地址空间来存放变量吧?你能纠正这个吗?functionB(){this.obj={};}functionA(){}A.prototype=newB();vara=newA();varb=newA();varc=newA();console.log(a.obj==b.obj);//printstrueconsole.log(a.obj===b.obj);//printstrue

javascript - 在 Javascript 中,我应该在加载新实例后删除上一级别的实例吗?

我制作了一个包含许多小关卡的HTML5游戏。当玩家到达门口时,会加载另一个关卡。当一个关卡正在加载时,它基本上只是将所有实例数组设置为[],然后通过创建事物的新实例将内容插入其中,例如:enemies=[]//thishaspreviouslybeenfullofpointersfromtheoldlevelfor(i=0;i但是,我注意到仅仅设置一个充满指向[]的指针的数组并不会真正删除实例!那么,javascript会自动执行此操作吗?还是我必须自己删除每个实例? 最佳答案 如果数组中的对象不再被任何地方引用,那么它们将被垃圾回

javascript - OOP javascript 和简单类实例化

首先,如果这是一个愚蠢的问题,我很抱歉。我在下面写了两个代码片段。从here中找到的第一个代码片段由JohnResig编写,毫无疑问,他是最好的之一,第二个代码片段是我根据原始代码修改的,只是为了理解其中的区别,但我不确定两者之间到底有什么区别相对而言,我能做什么和不能做什么。请有人帮助我理解其中的区别。谢谢。functionmakeClass(){returnfunction(args){if(thisinstanceofarguments.callee){if(typeofthis.init=="function")this.init.apply(this,args.callee?

javascript - 了解 Crockford 的无类 OOP 实现

我一直在阅读有关在JS中执行OOP的不同方法。DouglasCrockford有一种有趣的方法,他似乎根本不使用委派。相反,对我来说,他似乎纯粹利用对象串联作为他的继承机制,但我很难说出发生了什么,我希望有人能提供帮助。这是克罗克福德在他的一次演讲中给出的一个例子。functionconstructor(spec){let{member}=spec,{other}=other_constructor(spec),method=function(){//accessesmember,other,method,spec};returnObject.freeze({method,other}