vue-箭頭函數的使用和this的指向


  平時在script標簽或JS文件定義一個函數是這樣的:

const fn = function(){
  consolo.log("")  
}

  如果是在對象字面量中定義函數的話,有如下兩種方式:

const fn = {
  fn1: function(){},
  fn2(){}    
}

  而在ES6中又引入了一種對函數的定義方式:箭頭函數,標准示例如下:

const jiantou = (num1,num2) => {
  console.log(num1+num2)
  return num+num2    
}

  上面的(num1+num2)是參數列表,后面的{ }是方法體;但主要說的並不是這種方式,他還有特別的寫法:

  當只有一個參數,方法體中的代碼只有一行時,他可以下面的寫法:

const jiantou = num => num

  上面代碼意思是:參數是num,方法體是return num;做一個總結:當參數只有一個時,()是可以省去的(無參是不可以省去的),當方法體只有一行代碼時,{}是可以省去的,並且記住這行代碼實際上前面會跟上一個return的,但很多人在想,那我這個函數沒有返回值,他返回什么呢?那他返回就是一個undefined

  說完箭頭函數,再說一下箭頭函數中的this和普通定義的函數中this有什么區別吧,看到下面的代碼:

 

   當我們調用obj.add()函數時,function()中的this指向的是window對象;而箭頭函數指向的是obj,這是怎么回事呢?

  對於function()中的this,指向的是最外層的對象,即 window

  而箭頭函數中的this他是指向的最近作用域的對象,也就是說最近調用它的對象,在上面的例子,obj就是最近調用它的對象


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM