Javascript构造函数失败
Failing in a Javascript Constructor
我目前正在构建一个(ES6)javascript构造函数,并想知道应该如何处理"失败"。我想直接登录控制台并设置this = undefined;
,但出于某种原因,这是"非法的左侧分配"。这大致就是我的想法:
class Foo {
constructor(foo) {
if (foo === bar) {
// considered "success"
this.foo = foo;
} else {
// failure
console.log("oh noes!");
this = undefined;
}
}
}
这会被认为是明智的做法吗?我只是想了解最好的实践应该是什么,因为在使用构造函数时失败了。
您不能直接分配给this
,但如果您确实想在发生错误时返回undefined
,您可以使用工厂方法:
class Foo {
constructor(foo) {
if (foo !== bar) {
throw new Error('oh noes!');
}
}
}
let Factory = {
createFoo(f) {
try {
return new Foo(f);
} catch(e) {
console.log(e.message);
}
}
};
let myFoo = Factory.createFoo(baz);
相关文章:
- ES6构造函数返回基类的实例
- 使用Google Visualization动态调用构造函数
- javascript中对象构造函数中的var属性与this.properties
- 理解typescript中的构造函数接口
- 为什么构造函数不是构造函数
- 如果在构造函数中有“返回”,则在 JavaScript 中的新运算符中做了什么
- 拦截对构造函数的调用
- 使用闭包共享构造函数参数
- 文本表示法VS.构造函数,用于在JavaScript中创建对象
- 从js引擎的角度来看闭包和构造函数是如何工作的
- 如何使用此从对象访问构造函数
- Javascript:为什么是构造函数's __proto__属性Empty(){}
- 当一个重要的构造函数参数丢失时应该发生什么
- Chrome Javascript日期构造函数错误
- 如何使用构造函数's的输出,以便将值插入到对象中
- 为什么在调用父构造函数时在[]中发送数据
- 构造函数函数闭包变量
- 由于angular定义的构造函数,Lodash-isEqual失败
- Javascript构造函数失败
- obj.如果在ExtJs类原型中定义了构造函数,则get函数失败