我想说的是,如果我不使用 new 进行呼叫,请不要执行此行
this.price = price
我创建了构造函数并创建了属性 price 然后创建了对象 prod1 。我使用 new 关键字将其命名。 我预计输出为200,但 undefined
let Prodcut = function(price) {
if (!new.target)
throw this.price = price;
};
let prod1 = new Prodcut("200");
console.log(prod1.price);
注意:
this.price = price
说到下一行 “'throw'及其表达式之间不允许换行”
答案 0 :(得分:1)
由于您需要检查是否已使用关键字new
调用了构造方法,因此我认为情况应该有所改变。因为如果在没有属性的情况下调用构造函数,则会放置该属性。你可以试试这个
let Prodcut = function(price) {
if (new.target)
this.price = price;
};
let prod1 = new Prodcut("200");
console.log(prod1.price);
答案 1 :(得分:-1)
您好,我相信您的问题可以提供更多详细信息,但是查看您想做什么,也许可以尝试
function Product(price) {
this.price = first;
}
然后
let prod1 = new Product(200);
console.log(prod1.price); // should be 200