gpt4 book ai didi

javascript - 为什么代码放在return语句后面,它会被执行吗?

转载 作者:行者123 更新时间:2023-12-03 12:31:54 25 4
gpt4 key购买 nike

我不明白为什么 Function.prototype.call() 可以这样使用?据我所知,如果函数返回之后的代码将不会被执行。我在这里错过了什么吗?

function Product(name, price) {
this.name = name;
this.price = price;

if (price < 0)
throw RangeError('Cannot create product
"' + name + '" with a negative price');
return this;
}

function Food(name, price) {
Product.call(this, name, price); // if the function returns here why put this.category after this statement?
this.category = 'food'; // will this ever get executed?
}
Food.prototype = Object.create(Product.prototype);

var cheese = new Food('feta', 5);

我知道 Product 和 Food 都是构造函数,我们可以使用调用来调用对象的链式构造函数,类似于 Java。但为什么不加上声明

this.category = 'food';

之前

Product.call(this, name, price);

最佳答案

As far as I know if a function returns the code after that will not get executed.

是的。

Did I missed something here?

return在本地工作,并且仅结束当前函数调用。在设置 .category 属性之前,Food 函数不会返回

顺便说一句,Product 中的 return 是不必要的,因为构造函数不需要显式返回。

关于javascript - 为什么代码放在return语句后面,它会被执行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23885945/

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