我目前正在构建一个 (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);
关于javascript - Javascript 构造函数失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34728078/