3 回答
TA贡献1795条经验 获得超7个赞
既然你想调用这个方法,你应该先检查它是否真的是一个方法。如果它是一个非函数属性,那么你所做的将导致 TypeError。
const obj = {
add: true
}
if (obj.add) {
console.log(obj.add(9, 3));
}
if (obj.sub) {
console.log(obj.sub(8, 2));
}
所以:
const obj = {
add(a, b) {
return a + b
},
badProp: true
}
const verify = arg => typeof arg === 'function';
if (verify(obj.add)) {
console.log(obj.add(9, 3));
}
if (verify(obj.sub)) {
console.log(obj.sub(8, 2));
}
if (verify(obj.badProp)) {
obj.badProp();
}
TA贡献2021条经验 获得超8个赞
typeof() 是一种检查天气的方法 var 是函数还是其他任何东西。
if (typeof obj.add === 'function') {
console.log(obj.add(9, 3));
}
TA贡献1773条经验 获得超3个赞
你可以这样试试。检查是否object key是一个函数,
const obj = {
add:function (a, b) {
return a + b
},
sub:function (a, b) {
return a - b
}
}
if (typeof obj.add === 'function') {
console.log(obj.add(9, 3));
}
if (typeof obj.sub === 'function') {
console.log(obj.sub(8, 2));
}
添加回答
举报