gpt4 book ai didi

javascript - ES6 类默认值

转载 作者:可可西里 更新时间:2023-11-01 01:36:09 25 4
gpt4 key购买 nike

是否可以创建一个 ES6 类,如果它没有在新方法中传递,则将默认值分配给属性?

class myClass {
constructor(options) {
this.a = typeof options.a !== 'undefined' ? options.a : 'default a value';
this.b = typeof options.b !== 'undefined' ? options.b : 'default b value';
this.c = typeof options.c !== 'undefined' ? options.c : 'default c value';
}
}

var myClassWithValue = new myClass({a:'a value', b: 'b value'});

如果我尝试使用此代码执行此操作,使用 babeljs 进行编译,我会收到 TypeError: Cannot set property 'c' of undefined。

也许我不了解类在 javascript 中的工作方式。

最佳答案

如果你打算使用 ES6,为什么不使用所有 ES6,即参数和解构赋值的默认值

class myClass {
constructor({a = 'default a value', b = 'default b value', c = 'default c value'} = {a:'default option a', b:'default option b', c:'default option c'}) {
this.a = a;
this.b = b;
this.c = c;
}
}
var v = new myClass({a:'a value', b: 'b value'});
console.log(v.toSource());
var w = new myClass();
console.log(w.toSource());

http://www.es6fiddle.net/ibxq6qcx/

编辑:还测试并确认在 https://babeljs.io/repl/ 上运行

关于javascript - ES6 类默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31342290/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com