TOGOUTECH

es6-class

全部标签

javascript - 将 ES6 类对象序列化为 JSON

classMyClass{constructor(){this.foo=3}}varmyClass=newMyClass()我想将myClass对象序列化为json。我能想到的一个简单方法是,因为每个成员实际上都是javascript对象(数组等),我想我可以维护一个变量来保存成员变量。this.prop.foo=this.foo等等。我希望为类对象找到一个toJSON/fromJSON库,因为我将它们与其他语言(如swift/java)一起使用,但找不到用于javascript的库。也许类构造太新了,或者我所要求的可以在没有库的情况下以某种方式轻松实现。

javascript - 在 Javascript ECMAScript 6 中从类名创建对象

我想使用ES6创建对象工厂,但旧式语法不适用于新语法。我有下一个代码:exportclassColumn{}exportclassSequence{}exportclassCheckbox{}exportclassColumnFactory{constructor(){this.specColumn={__default:'Column',__sequence:'Sequence',__checkbox:'Checkbox'};}create(name){letclassName=this.specColumn[name]?this.sp

javascript - 带有静态箭头函数的类

我目前正在实现staticland规范(幻想世界的另一种选择)。我不仅想使用普通对象作为类型,还想使用带有静态方法的ES2015类。我已经将这些静态方法实现为柯里化(Currying)形式的箭头函数,而不是普通函数。然而,这对于ES2015类是不可能的:classListextendsArray{staticmap=f=>xs=>xs.map(x=>f(x))staticof=x=>[x]}我的map不需要它自己的this,因为它只是List构造函数上的柯里化(Currying)函数。为了让它工作,我必须编写staticmap(f){returnxs=>xs.m

javascript - JavaScript 中的自定义类数组 getter

我有一个简单的ES6类,如下所示:classRingextendsArray{insert(item,index){this.splice(index,0,item);returnthis;}}我想让Ring对象的索引环绕,这样newRing(1,2,3)[3]返回1,newRing(1,2,3)[-1]返回3,依此类推。这在ES6中可行吗?如果可以,我将如何实现?我读过代理,它允许完全自定义的getter,但我不知道如何将代理应用于类。我确实做到了:varmyRing=newProxy(Ring.prototype,{get:function(target,name){varlen=

javascript - 不使用 class 关键字创建自定义元素

这其实更多的是关于ES6中面向对象模型的问题。不过,我将以创建新的自定义元素为例。因此,创建新自定义元素的新方法(从今天开始)是通过customElements.define(),它包含一个标签name,一个constructor和options(可选)根据MDN,Google,当然还有spec.列出的所有文档都对constructor使用了新的class关键字的变体。假设我不喜欢新的class语法,并且考虑到大部分class是一个语法糖(根据thistutorial)。规范甚至明确指出Aparameter-lesscalltosuper()mustbethefirststatemen

javascript - 使用 ES6 类继承链的 instanceof 不起作用

使用ES6class语法,我想知道当有多个继承链时,为什么instanceof运算符对继承链不起作用?(optionalread)Howinstanceofoperatorworks?InobjinstanceofConstructor,theinstanceofoperatorchecksifthe'prototype'propertyoftheConstructorfunctionispresentintheprototypechainoftheobj.Ifitispresent,returntrue.Otherwise,false.在下面的代码片段中,BTErro

javascript - TypeScript 意外标记,需要构造函数、方法、访问器或属性

只是尝试使用typescript在类中编写一个函数。classTest{functionadd(x:number,y:number):number{returnx+y;}}这会导致以下错误:TypeScriptUnexpectedtoken,Aconstructor,method,accessororpropertywasexpected.我从以下位置复制了示例:https://www.typescriptlang.org/docs/handbook/functions.html我错过了什么吗?我很困惑! 最佳答案 您不应该在Typ

Javascript ES6 - 类内部的枚举像静态枚举一样在外部使用

我想问一下是否可以添加一个类似于以下的枚举:STATES={WIP:"Workinprogress",ONLINE:"Online",ONLINE_MODIFIED:"Online,modified",HIDDEN:"Hidden"}在一个类中,并能够在一些其他文件中使用它,类似于:object.updateState(Class.STATES.HIDDEN)而不必像那样构造一个新对象boxObject.updateState(newBox().STATES.HIDDEN)谢谢。 最佳答案

javascript - 自定义 toString 的推荐方式是什么?使用 Symbol.toStringTag 还是覆盖 toString?

我对实现什么感到困惑,首先,我的模块将使用Babel,因此实现ES6功能没有问题,其次,我将使用class构造来创建类而不是旧的原型(prototype)方法。所以现在,我很困惑是要重写toString(这是旧方法)还是像这个MDN文档所说的那样实现Symbol.toStringTag,https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/toStringTag那么推荐的方式是什么呢? 最佳答案 它们完全不同。如

ES6 类中的 javascript 'this' 返回未定义

这个问题在这里已经有了答案:Howtoaccessthecorrect`this`insideacallback(13个答案)关闭6年前。我认为这是一个范围问题,但我不确定如何解决这个问题。这是我的代码:http://jsfiddle.net/9k9Pe/1498/classFrameCreator{constructor(){this.createFrame();}createFrame(){variframe=document.createElement('iframe');this.iframe=iframe;varframeLoaded=this.frameLo
12