草庐IT

opengl-es-3.0

全部标签

javascript - 为什么 ES5 Object 方法没有添加到 Object.prototype 中?

ES5添加了一个number的methods到Object,这似乎打破了JavaScript的语义一致性。例如,在此扩展之前,JavaScriptAPI始终围绕操作对象本身;vararrayLength=[].length;varfirstPosInString="foo".indexOf("o");...新的Object方法是这样的;varobj={};Object.defineProperty(obj,{value:'a',writable:false});...当以下内容更加符合时:varobj={};obj.defineProperty({value:'a',writable:

javascript - 如何在 JavaScript es6 中代理 Promise

我正在尝试在nativeFirefox中代理Promise(并使用Babel)。varprom=newPromise(function(resolve,reject){resolve(42)});varpromProxy=newProxy(prom,{});promProxy.then(function(response){console.log(response)});这不起作用,我收到“TypeError:‘then’调用了一个未实现接口(interface)Promise的对象。” 最佳答案 你需要有你的处理程序impleme

javascript - ES6 解构,动态赋值

这个问题在这里已经有了答案:Objectdestructuringwithoutvar,letorconst(4个答案)关闭7年前。lettext,value;if(typeoff=='string'){text=value=f;}else{let{text,value}=f;}这样做会创建两个新变量(来自else),但是如果我这样写:lettext,value;if(typeoff=='string'){text=value=f;}else{{text,value}=f;}我收到语法错误。这里最好的方法是什么?

javascript - es6 promise swallow 类型错误

我希望浏览器在发生类型错误时显示错误消息。错误如无法读取未定义的属性或undefinedreference。newPromise(function(resolve,reject){//dostuff...reject('somethinglogicaliswrong');}).catch(e=>console.error(e));newPromise(function(resolve,reject){//dostuff,andasyntaxerror:/vara={};a.something.otherthing=1;/*wehaveanerrorhere*///...}).catch

javascript - 使用 Browserify 设置 Karma 以测试 React (ES6) 组件

我在使用Karma+Browserify为某些React组件设置测试配置时遇到了问题。提到代码是用ES6编写的,我已经升级到最新的Babel版本(6+),我认为这是此配置中万恶之源。由于Babel现在已拆分并具有这种基于插件的方法(预设),我不确定我应该如何在karma.conf文件中指定它。我当前的配置如下所示:module.exports=function(config){config.set({basePath:'',browsers:['PhantomJS'],frameworks:['browserify','jasmine'],files:['app/js/**/*','a

javascript - ES6 类不适用于 Chrome 47

GoogleChrome声称从版本42开始支持ES6类,但是当我在控制台中运行下面的简单代码时,它给出了UncaughtSyntaxError:Unexpectedtokenclass(...):classPolygon{constructor(height,width){this.name='Polygon';this.height=height;this.width=width;}Firefox也不行。MicrosoftEdge运行良好。这正常吗? 最佳答案 您是否处于“使用严格”模式?ES6classessolvethisby

javascript - 带有 ES3 输出的 Typescript ES7 描述符?

在查看这些问题之后,TS应该支持带有装饰器的ES3,并且我有一个场景,我在typescript中有一个使用装饰器和目标ES5的现有代码库,但我现在显然需要支持需要ES3的IE6。现在根据:https://github.com/Microsoft/TypeScript/issues/4681似乎应该支持ES3,但如果我输出到目标ES3,我会得到:错误TS1241:当作为表达式调用时,无法解析方法装饰器的签名。提供的参数与调用目标的任何签名都不匹配。我得到0个错误并且在ES5中一切正常,所以你需要做任何事情才能让它在ES3中正常工作还是它只是不受支持?这是问题的cloud9示例:https

javascript - 在一个表达式中加载和使用 ES6 模块

使用node.js模块语法,您可以加载一个模块并在一个表达式中使用它:constnumCPUs=require('os').cpus().length;是否有ES6模块的等效项?importosfrom'os';constnumCPUs=os.cpus().length;是我能得到的最接近的;这是两个完整的语句,给我留下了一个不需要的os绑定(bind)。 最佳答案 没有。在分析文件时和执行文件之前,静态地绑定(bind)到模块。实现您想要做的事情的唯一方法是使用namedexport.exportconstnumCPUs=os.c

javascript - 使用 ES6 静态函数时得到 "no such method"

我正在尝试为我在ReactNative中从事的项目创建一个包含静态函数的“utils”类。我读到了如何在StackOverFlow中创建静态函数question,但出于某种奇怪的原因,它对我不起作用。//utils.js'usestrict'exportdefault{textFormat(args){vars=args[0];for(vari=0;iHeythere");但我不断收到此错误“Utils.textFormat不是函数”,我做错了什么? 最佳答案 幸好你的工作正常,但我只想添加一个更接近你最初尝试做的解决方案,并注意t

javascript - 在 ES2015 中枚举通配符导入

所以,在ES2015中你可以://ModuleAexportconstFOO=0;exportconstBAR=1;//ModuleBimport*asAExportsfrom'ModuleA';console.log(AExports.FOO);//Prints0在运行时枚举ModuleA导出的官方方法是什么?import*asAExportsfrom'ModuleA';//Arethesevaluesguaranteedtobesomething?Object.keys(AExports);//Ifso,shouldIlookatenumerablevalues?[...AExpo