1. 程式人生 > 程式設計 >vue 函式呼叫加括號與不加括號的區別

vue 函式呼叫加括號與不加括號的區別

寫在前面:最近做的一個專案用是很久之前的,在維護專案中就無法使用vue等技術來操作,所以一些方法用的是原生來寫的,在繫結點選方法時,方法名沒加括號,就沒生效,加了括號就生效了,當時有疑惑的點是在之前做vue的專案中,我記得不加括號也是完全可以的,於是就詳細的查了一下。

原生方法呼叫函式

在script裡寫方法,不加括號的話就相當於得到的是這個函式體,是這個函式本身,並不會執行函式

<body>
  <div>函式呼叫是否要加括號</div>
  <button>點選變色</button>
  <script type="text/javascript">
   var div = document.getElementsByTagName('div')[0];
   var btn = document.getElementsByTagName('button')[0];
 
    function reset(){
      div.style.color='green'
    }
    btn.onclick = reset //1.這種情況相當於 btn.onclick = function reset(){...} ,點選之後執行這個事件。得到是函式體
    btn.onclick = reset() //2.這種情況可以理解成給函式外面加了括號成了自執行函式,不用點選就得到了一個函式執行後面的結果
 
  </script>
</body>

當然以上兩種大家都明白,不會有什麼疑惑,用習慣vue中的方法呼叫時和再用原生遇到的疑惑的點在於在行內加方法,

vue 函式呼叫加括號與不加括號的區別

  <div>函式呼叫是否要加括號</div>
  <button onclick="reset()">點選變色</button>
  <script type="text/javascript">
   var div = document.getElementsByTagName('div')[0];
   var btn = document.getElementsByTagName('button')[0];
 
    function reset(){
      div.style.color='green'
    }

在原生的行內加方法時是要加()才能執行的 具體原因,哈哈,我想多了會把自己繞進去,歡迎你們解答

vue方法中呼叫函式

這個其實加不加括號,這個方法都會執行,加()我一般會考慮到傳參的問題,

  • 不加括號,預設傳遞引數為 MouseEvent,
  • 加括號,括號中使用$event,才能獲取到MouseEvent,不過我們這種加括號的情況,一般是傳自己需要的引數

歡迎指正~

本文作者: 張尊娟

本文連結:https://www.cnblogs.com/wszzj/p/13895908.html?utm_source=tuicool&utm_medium=referral

以上就是vue 函式呼叫加括號與不加括號的區別的詳細內容,更多關於vue 函式呼叫的資料請關注我們其它相關文章!