问题描述
我刚刚了解了 Optional chain 和 Nullish 合并 的组合。
这是object
const restaurant = {
name_: 'Classico Italiano',location: 'Via Angelo Tavanti 23,Firenze,Italy',categories: ['Italian','Pizzeria','vegetarian','Organic'],starterMenu: ['Focaccia','Bruschetta','Garlic Bread','Caprese Salad'],mainMenu: ['Pizza','Pasta','Risotto'],openingHours: {
thu: {
open: 12,close: 22,},fri: {
open: 11,close: 23,sat: {
open: 0,// Open 24 hours
close: 24,orderPizza(ing1,ing2) {
console.log(`you have ordered your pizza with ${ing1} and ${ing2}`);
}};
当我试图检查该方法是否存在时,它无论如何都会打印出它们。我做错了什么?
console.log(restaurant.orderPizza?.('some','something') ?? 'no method exist');
解决方法
也许从函数返回一个值,否则它有一个未定义的值:
const restaurant1 = {
name_: 'Classico Italiano',orderPizza(ing1,ing2) {
return `you have ordered your pizza with ${ing1} and ${ing2}`;
}
};
const restaurant2 = {
name_: 'Other',};
console.log(restaurant1.orderPizza?.('some','something') ?? 'no method exist');
console.log(restaurant2.orderPizza?.('some','something') ?? 'no method exist');