gpt4 book ai didi

javascript - 为什么要使用构造函数?

转载 作者:行者123 更新时间:2023-12-05 03:20:13 27 4
gpt4 key购买 nike

我突然想到,老实说,我从来不必一直使用类或构造函数,并开始怀疑是否有我应该使用它们的情况?例如,下面的代码除了一个使用构造函数和一个不使用构造函数之外基本相同。

使用构造函数:

function Food(foodName, foodPrice) {
Currencies.call(this, foodPrice);
this.category = 'food';
this.name = foodName;
}

function Currencies(usd) {
this.usd = usd;
this.won = +usd * 1000;
}

const pizza = new Food('pizza', 30); // { usd: 30, won: 30000, category: 'food', name: 'pizza' }
const burger = new Food('burger', 10); // { usd: 30, won: 30000, category: 'food', name: 'pizza' }

不使用构造函数

function food(foodName, foodPrice) {
return { name: foodName, category: 'food', ...(currencies(foodPrice)) }
}

function currencies(usd) {
return { usd, won: usd * 1000 }
}

const pizza = food('pizza', 30); // { usd: 30, won: 30000, category: 'food', name: 'pizza' }
const burger = food('burger', 10); // { usd: 30, won: 30000, category: 'food', name: 'pizza' }

对我来说,不使用构造函数似乎更简单一些,所以我会避免使用它 AMAP。你喜欢什么,为什么?您具体什么时候决定使用构造函数而不是“常规”函数?

最佳答案

构造函数使您能够为对象本身编写方法,如果没有构造函数就无法做到这一点。除此之外,您还可以提供必须在实例化对象上调用任何其他方法之前必须完成的自定义初始化。您还可以使用 extends 运算符从一个类继承到另一个类。这可以节省您一遍又一遍地重写相同内容的时间,并且可以更好、更轻松地控制您的对象。

有关详细信息,请参阅以下链接: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/constructor

关于javascript - 为什么要使用构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73243947/

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