使用函数带()和不带()的区别

使用函数带()和不带()的区别

老师,第19行,

<input @click="click()" type="button" value="ok">

如果写成

<input @click="click" type="button" value="ok">

也是可以的吗?实际会有区别吗?

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="https://unpkg.com/vue@next"></script>
    <title></title>
</head>
<body>
    <div id="demo"></div>
    <script>
        const app =Vue.createApp(
            {
                data(){
                    return{
                        Text:"HelloWorld",
                        show1:true,
                        show2:true,
                    }
                },
                methods:{
                    click(){
                        alert("ok");
                    }
                },
                template:
                    `
                    <div v-if="show1">{{Text}}</div>
                    <div v-show="show2">{{Text}}</div>
                    <input @click="click()" type="button" value="ok">
                    `
               
            }
        );
        app.mount('#demo');
       
    </script>

</body>
</html>


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,带括号时,可以往方法中传参数,例如:

https://img1.sycdn.imooc.com//climg/61f352fb093e4bb209050383.jpg

如果不需要传参,那么写不写括号都可以,没区别。

祝学习愉快!

  • localhost999 提问者 #1

    老师,函数带()和不带(),原生js也是这样吗?

    2022-01-28 10:31:43
  • localhost999 提问者 #2

    原生js也是没有区别吗

    2022-01-28 10:32:15
  • 好帮手慕久久 回复 提问者 localhost999 #3

    同学你好,原生js中,必须写括号,例如:

    https://img1.sycdn.imooc.com//climg/61f35ab4091a2c6307540296.jpg

    如果不写括号,事件处理函数会无法执行:

    https://img1.sycdn.imooc.com//climg/61f35ac7098efc5e05910252.jpg

    https://img1.sycdn.imooc.com//climg/61f35ae309e77c1905090467.jpg

    祝学习愉快!

    2022-01-28 10:54:50
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师