草庐IT

es-head插件

全部标签

javascript - 如何在 ES6 类中声明局部函数?

我有一个只能在类内部使用的函数,不希望在类外访问它。classAuth{/*@ngInject*/constructor($http,$cookies,$q,User){this.$http=$http;this.$cookies=$cookies;this.$q=$q;this.User=User;localFunc();//Needtocreatethisfunction,andneedittobeaccessibleonlyinsidethisclass}}到目前为止我所做的是在类外声明函数functionlocalFunc(){return'foo';}classAuth{..

javascript - jQuery 插件命名空间函数

我正在创建一个范围相当大的jQuery插件。事实上,该插件在技术上由几个协同工作的插件组成。(function($){$.fn.foo=function(){//pluginpartA}$.fn.bar=function(){//pluginpartB}$.fn.baz=function(){//pluginpartC}}(jQuery))是否可以对jQuery插件进行命名空间,以便较小的插件可以成为较大插件的函数$.fn.foo.bar=function(){}$.fn.foo.baz=funciton(){}这将避免污染jQuery函数命名空间。然后你可以像这样调用插件$('#ex

javascript - 使用 "on change"回调从 jQuery 插件更新 AngularJS 模型

我正在为需要屏幕键盘的触摸屏计算机构建网络应用程序,并尝试使用这个出色的(或者至少是我能找到的唯一一个还不错的)键盘。https://github.com/Mottie/Keyboard/问题是,正如您可能已经猜到的那样,使用屏幕键盘时模型不会更新。这是我的代码,它可以工作,但有点丑陋:部分HTML:从部分页面Controller初始化键盘:$('.keyboard').keyboard({stickyShift:false,usePreview:false,autoAccept:true,change:function(e,kb,el){$scope.newUser.name=el.

javascript - Javascript ES6 中的静态构造函数

在ES6中,我可以像下面这样创建静态方法。但是我需要定义一个静态构造函数但没有成功。我需要在加载类时只运行一次的东西。我有什么办法可以实现这样的事情吗?classCommander{staticonData(){console.log("blabla");}} 最佳答案 在类主体中包含类设置代码似乎更整洁,因此“类表达式”是独立的。ES6在类主体中接受语法staticconstructor(){/*dostuff*/>但从不运行它。也许是为了将来的语言扩展?无论如何,这是实现预期结果的一种方法。诀窍是使用立即执行的函数表达式来初始化

javascript - 使用 ES6 模块导出/导入单类方法?

假设我在fileA.js中有一个像这样的简单类:classfoo{constructor(x){this.name=x}fooMethod(x){returnx+'hello';}}我想像这样在fileB.js中导入和使用fooMethod:import{fooMethod}from'./fileA';classbar(){...barMethod(x){returnfooMethod(x);}}如何在fileA中编写export来实现这一点? 最佳答案 您必须在原型(prototype)上导出它。但请记住,如果您这样做,您将不会在

javascript - for-of-loop 中的 ES6 导入

有没有办法在ES6中使用for-of-loop(或其他循环)导入和导出多个文件?constmoduleNames=['NumberUtils','StringUtils','ArrayUtils','MyModule','AnotherModule','BaseModule']letmodules={}for(constmoduleNameofmoduleNames){importmodulefrom'./'+moduleNamemodules.moduleName=module}exportmodules没有循环我必须写:importNumberUtilsfrom'./NumberU

javascript - 将 ES5 数组方法与 ES6 生成器一起使用

在ES6生成器中使用新的ES5数组函数的正确方法是什么?我是否必须先将可迭代对象显式转换为数组,还是有更好的方法?例如:function*range(low,high){vari=low;while(ix+y)); 最佳答案 生成器函数返回Iterator对象。IteratorAPI不包括高阶数组方法,例如map、reduce等,因此您需要构建一个中间数组(或使用类似wu.js的库)。您可以使用spreadoperator从(有限)迭代器简洁地构建一个数组:varsum=[...range(0,10)].reduce((e,i)=>

javascript - 在 ES6 Set 中存储数组并按值访问它们

是否有一种简单的方法来验证ES6Set包含的值是特定数组?我想要一个不需要我使用引用的解决方案:varset=newSet();vararray=[1,2];set.add(array);set.has(array);//trueset.add([3,4]);set.has([3,4]);//false到目前为止,我的解决方案是将所有内容存储为字符串,但这很烦人:set.add([3,4].toString());set.has([3,4].toString());//true 最佳答案 不,没有。Set适用于对象和基元,对于防止相

javascript - 我可以触发并忘记 nodejs (ES7) 中的 promise 吗?

我想用babel运行这段代码:redisClientAsync.delAsync('key');returnawaitsomeOtherAsyncFunction();在第一行没有await的异步函数中。这样可以吗?我还能如何运行我不关心的东西?我可以在没有回调的情况下触发非promise函数del('key',null)吗? 最佳答案 是的,你可以这样做,它会并行运行两个异步函数。您刚刚创建了一个promise并将其丢弃。但是,这意味着当promise被拒绝时,您不会注意到。你只会getanunhandledRejectionev

javascript - 为什么ES6定义了map.length==0?

根据MDN:Map.lengthlength属性的值为0。这有什么用例?我理解为什么Map.size在语义上是正确的。但可以肯定的是,几乎总是返回“错误”答案的Map.length是一个坏主意,尤其是当存在疏忽从ES5迁移代码时。有没有办法在使用时强制出错? 最佳答案 JavaScript中的构造函数是常规函数,length函数的属性对应于函数期望的形式参数的数量,在Map的情况下为0。将此与RegExp.length对比,后者为2,因为RegExp构造函数需要两个参数(模式和标志)。