【发布时间】:2020-04-14 19:27:00
【问题描述】:
我想要的是,如果我没有使用 new 关键字调用对象,那么不要执行此行
this.price = price
我创建了构造函数并创建了属性price 我创建了对象 prod1。我使用 new 关键字调用它。 我预计输出是 200,但它是 undefined。 我想当我使用new关键字调用控制台200中的对象print时,就是price属性的值。
let Prodcut = function(price) {
if (!new.target)
throw this.price = price;
};
let prod1 = new Prodcut("200");
console.log(prod1.price);
注意:
- 我在视频中看到了 [https://www.youtube.com/watch?v=f5wGZiYVfjk&list=PL7pEw9n3GkoW0ceMeoycg9D00YjPAbtvt&index=2&t=190s]
- 当我移动时
this.price = price
到下一行 "'throw' 和它的表达式之间不允许换行"
【问题讨论】:
-
为什么会这样?
-
将
this.price = price移动到下一行? -
@DaveNewton 因为我使用了新关键字
-
@adiga 它说“'throw' 和它的表达式之间不允许换行”
-
你需要抛出一个错误。比如:
if (!new.target) throw "error message"; this.price = price;
标签: javascript oop object constructor properties