如何在JavaScript构造函数中定义布尔类型变量?写法是否正确?
你的代码语法正确,但需根据实际需求调整
你的这段代码语法上完全没问题,它确实给Hamburger实例的order属性设置了布尔类型的false值。不过这里有个容易混淆的点:你把order写在了构造函数的参数列表里,但代码里完全没用到这个传入的参数——不管外部调用时传什么,order都会被固定设为false。
如果你的需求是:
- 不管外部传什么,
order初始值都固定为false:那可以把参数列表里的order删掉,避免误导,代码改成这样:
function Hamburger(menu, price) { this.menu = menu; this.price = price; this.order = false; }
如果你的需求是:
- 根据外部传入的
order参数来设置,同时确保它一定是布尔类型:那需要对传入的参数做处理,比如用Boolean()强制转换,或者做严格判断:
// 强制转换为布尔值(空字符串、0、null、undefined都会转为false,其他转为true) function Hamburger(menu, price, order) { this.menu = menu; this.price = price; this.order = Boolean(order); } // 或者只在传入明确的true时才设为true,其他情况(包括不传参数)都是false function Hamburger(menu, price, order) { this.menu = menu; this.price = price; this.order = order === true; }
内容的提问来源于stack exchange,提问作者정지은
相关产品推荐
相关产品推荐

