gpt4 book ai didi

javascript - JavaScript 中存在方法 : Checking for truthy sufficient?

转载 作者:行者123 更新时间:2023-11-28 12:54:16 26 4
gpt4 key购买 nike

如果我想测试一个对象是否有特定的方法:以下代码可靠吗?

const obj = {
add(a, b) {
return a + b
}
}

if (obj.add) {
console.log(obj.add(9, 3));
}

if (obj.sub) {
console.log(obj.sub(8, 2));
}

或者它可能会失败吗?如果是这样:出于什么原因?

如果这还不够:我应该用什么来代替?

最佳答案

既然你想调用这个方法,你应该首先检查它是否真的是一个方法。如果它是非函数属性,您所做的操作将导致 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();
}

关于javascript - JavaScript 中存在方法 : Checking for truthy sufficient?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57176479/

26 4 0
文章推荐: javascript - 如何滚动到
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com