草庐IT

编译构造

全部标签

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 - DevTools 性能工具中的解析、编译和评估是什么?

在Chromes的性能选项卡中运行JS脚本时,我看到JS解释分为三个步骤:Parse、Compile和Evaluate。有时我只会看到Evaluate,有时会看到Compile和Evaluate,有时会看到全部三个。我的问题是:每个步骤的实际含义是什么?为什么有时会缺少步骤?(例如,有时Parse会丢失) 最佳答案 解析:js引擎检查代码,确定所有不同的范围、变量声明等,并对它们进行排序。在这一步也会发生提升。基本上你的纯文本源代码变成了AbstractSyntaxTree(AST)编译:ChromeV8使用JIT编译,这意味着部分

javascript - 混合构造函数并在 Javascript 代理对象上应用陷阱

我有一个类,我想对其应用代理,观察方法调用和构造函数调用:计算器.jsclassCalc{constructor(){}add(a,b){returna+b;}minus(a,b){returna-b;}}module.exports=Calc;index.jsconstCalculator=require('./src/Calculator');constCalculatorLogger={construct:function(target,args,newTarget){console.log('Objectinstantiated');returnnewtarget(...arg

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 中重新定义 Array 构造函数

假设我有以下代码:varsecrets;Array=function(){secrets=this;};上述示例的作者说代码正在重新定义Array构造函数。首先,我不确定this指的是什么。任何人都可以请教吗?第二:下面的代码是否等价?varsecrets;functionArray(){secrets=this;}顺便说一句,上面的代码摘自以下关于Json漏洞的文章:seehere 最佳答案 在这两个示例中,您都将变量Array定义为一个function,它将this分配给secrets.碰巧已经存在一个名为Array的全局对象,

javascript - Yeoman/Grunt 不编译 Compass

有没有人在将compass与yeoman和grunt一起使用时遇到过样式表未在其构建中编译的问题。我是新手,正试图真正了解幕后发生的事情。任何帮助将不胜感激。谢谢!'usestrict';varlrSnippet=require('grunt-contrib-livereload/lib/utils').livereloadSnippet;varmountFolder=function(connect,dir){returnconnect.static(require('path').resolve(dir));};module.exports=function(grunt){//lo

javascript - 如何在插入 DOM 时重新编译指令(angularjs)

好的,所以我创建了一个指令让我们说它按照我的预期进行渲染,所以一切正常。现在,我的问题是插入DOM时如何(重新)渲染它?我不想一直在我的页面上使用它,我只想动态添加它并在需要时呈现它(它是模块的一部分),比方说,理想情况下我希望它看起来像$("body").append("")如何使用angularjs实现这一点? 最佳答案 你需要在任何你想将指令元素注入(inject)DOM的地方写下两行,不要忘记在你使用的任何地方添加$document&$compile依赖vartemplate='',body=$document.find('

javascript - 在 ES6 + babel 中使用 bluebird promise 导入类(构造函数)

假设我创建了一个node.js库lib.jsexportclassC{constructor(value,callback){callback(false,`Hello${value}`);}task(value,callback){callback(false,"returned"+value);}}重要的部分是类的构造函数需要接受回调,因为它处理数据库连接和文件I/O。如果我现在导入并使用库回调样式,一切都很好(请参阅下面的c1)。我真的很想promise我使用它的库,使对象构造更方便(实际上它是一大堆类和方法)。但是,我找不到在promise-safe中正确地new类的方法。im

javascript - 不是所有的 JavaScript 函数都是构造函数吗?

我以一种奇怪的方式使用eval函数,作为构造函数。try{vary=neweval()}catch(error){console.log("caughta"+error.name+":"+error.message);}它抛出错误,caughtaTypeError:functioneval(){[nativecode]}isnotaconstructor如错误消息所示,eval是一个函数而不是构造函数。问题是,不是所有的javascript函数都充当构造函数吗? 最佳答案 并非所有函数都是构造函数。构造函数是functionvalu