错误事例:函数括号的乱用

函数括号代表什么?

函数括号代表调用,当我们不需要调用的时候,不要写括号;

正确代码

// 写一个方法,其他方法省略
waterPrePay() {
uni.showToast({
title: '建设中',
duration: 2000,
});
}
// 对象的每一个key的value是一个函数
const nameObj: any = {
水费缴纳: this.waterPay,
账单查询: this.billQuery,
水费预存: this.waterPrePay,
};
// 调用方法一
// 或运算符,首先判断是否存在,如果存在,返回的是对应的函数,加括号函数调用,
(nameObj[biz_ch_name] || this.clickFunciton)();
// 调用方法二
// 三目运算符,利用hasOwnProperty方法
// nameObj.hasOwnProperty(biz_ch_name) ? nameObj[biz_ch_name]() : this.clickFunciton();
// 调用方法三
// 三目运算符,利用Object.hasOwn方法
// Object.hasOwn(nameObj, biz_ch_name) ? nameObj[biz_ch_name]() : this.clickFunciton();

错误一:或运算

// 写一个方法,其他方法省略
waterPrePay() {
uni.showToast({
title: '建设中',
duration: 2000,
});
}
// 对象的每一个key的value是一个函数
const nameObj: any = {
水费缴纳: this.waterPay,
账单查询: this.billQuery,
水费预存: this.waterPrePay,
};
// 错误调用
// 或运算符,自己理解的是先判断如果nameObj存在则调用,否则调用this.clickFunciton();
// 实际执行是,有括号代表调用该方法,就是调用nameObj[biz_ch_name](),如果没有该方法则返回如下图所示:不是一个方法,从而不会走或后面的方法;
nameObj[biz_ch_name]() || this.clickFunciton();
// 正确写法如下,判断条件是否为真,然后调用方法
(nameObj[biz_ch_name] || this.clickFunciton)();
// 看到什么不是一个方法的错误,就是该方法没有调用对,或者没有写对方法

图一

错误二:在对象中就直接调用

// 写一个方法,其他方法省略
waterPrePay() {
uni.showToast({
title: '建设中',
duration: 2000,
});
}
// 对象的每一个key的value是一个函数
// 错误原因:括号代表调用,这样每次匹配时,就已经把每一个key对应的方法都调用一次,
const nameObj: any = {
水费缴纳: this.waterPay(),
账单查询: this.billQuery(),
水费预存: this.waterPrePay(),
};
// 调用
(nameObj[biz_ch_name] || this.clickFunciton)()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值