vue的 =>等同于什么

fiy 其他 11

回复

共3条回复 我来回复
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    Vue的 "=>" 等同于 JavaScript 的箭头函数(arrow functions)。

    箭头函数是 ES6 中的新特性,主要用于简化函数的定义和使用方式。箭头函数的语法如下:

    (param1, param2, …, paramN) => { statements }
    (param1, param2, …, paramN) => expression
    // 相当于:(param1, param2, …, paramN) => { return expression; }

    其中,参数列表和代码块之间用箭头符号(=>)连接起来。箭头函数的特点如下:

    1. 语法简洁:箭头函数的定义与普通函数相比更为简洁,没有 function 关键字和大括号。
    2. 绑定 this:箭头函数内部的 this 指向的是定义时所在的作用域,而不是调用时的作用域。这使得在箭头函数中可以直接使用外部作用域的 this,避免了传统函数中使用 bind() 方法绑定 this 的问题。

    在 Vue 中,箭头函数常用于定义数据的计算属性(computed),例如:

    computed: {
    fullName: () => {
    return this.firstName + ' ' + this.lastName
    }
    }

    以上就是 Vue 中箭头函数("=>")的等同关系。通过使用箭头函数,可以使代码更加简洁和易读。

    1年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    在Vue框架中,箭头函数(=>)等效于使用function关键字声明的函数。箭头函数是ES6的新语法,它提供了一种更简洁的方法来声明函数,并且还具有一些特殊的行为。

    下面是箭头函数与使用function关键字声明的函数的等效示例:

    1. 基本语法:

    使用function关键字声明函数的方式:

    function add(a, b) {
      return a + b;
    }
    

    使用箭头函数的方式:

    const add = (a, b) => a + b;
    
    1. this的指向:

    在箭头函数中,this的指向是在定义函数时确定的,而不是在运行时确定的。这意味着箭头函数没有自己的this绑定,它会继承父级作用域的this值。

    使用function关键字声明函数的方式:

    const obj = {
      name: 'Tom',
      sayName: function() {
        console.log(this.name);
      }
    };
    

    使用箭头函数的方式:

    const obj = {
      name: 'Tom',
      sayName: () => {
        console.log(this.name);
      }
    };
    

    在箭头函数中,this指向的是全局作用域,而不是obj对象。

    1. arguments对象:

    箭头函数没有arguments对象。如果需要访问传递给函数的参数,可以使用ES6的剩余参数语法来代替。

    使用function关键字声明函数的方式:

    function sum() {
      let total = 0;
      for (let i = 0; i < arguments.length; i++) {
        total += arguments[i];
      }
      return total;
    }
    

    使用箭头函数的方式:

    const sum = (...args) => {
      let total = 0;
      for (let i = 0; i < args.length; i++) {
        total += args[i];
      }
      return total;
    }
    
    1. 不能用作构造函数:

    箭头函数不能被用作构造函数,这意味着不能使用new关键字来创建一个对象。

    使用function关键字声明函数的方式:

    function Person(name) {
      this.name = name;
    }
    
    const person = new Person('Tom');
    

    使用箭头函数的方式:

    const Person = (name) => {
      this.name = name;
    }
    
    // TypeError: Person is not a constructor
    const person = new Person('Tom');
    
    1. 不具有prototype属性:

    由于箭头函数不能被用作构造函数,所以它们也没有prototype属性。

    使用function关键字声明函数的方式:

    function greet() {
      console.log('Hello!');
    }
    
    console.log(greet.prototype); // {}
    

    使用箭头函数的方式:

    const greet = () => {
      console.log('Hello!');
    }
    
    console.log(greet.prototype); // undefined
    

    总结:

    在Vue框架中,箭头函数(=>)等同于使用function关键字声明的函数,但是有一些细微的差别,如this的指向等。需要根据具体的使用场景和需求来选择使用哪种方式。

    1年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    在Vue中,箭头函数(=>)与普通函数相比有一些不同的行为。箭头函数是ES6中引入的新特性,它们具有更简洁的语法和更严格的作用域规则。在Vue中,箭头函数主要用于定义Vue组件中的方法。

    箭头函数与普通函数相比的主要区别如下:

    1. 语法更简洁:
      箭头函数没有function关键字,只需要写参数列表和箭头(=>)后面的函数体即可。

      // 普通函数
      function add(a, b) {
        return a + b;
      }
      
      // 箭头函数
      const add = (a, b) => a + b;
      
    2. 没有自己的this:
      箭头函数没有自己的this,它会继承外层作用域的this。这意味着在箭头函数中无法使用this关键字来访问当前对象。

      // 普通函数
      const obj = {
        name: 'Vue',
        sayHello: function() {
          console.log('Hello, ' + this.name);
        }
      };
      
      // 箭头函数
      const obj = {
        name: 'Vue',
        sayHello: () => {
          console.log('Hello, ' + this.name); // this指向的是外层作用域的this,这里为全局对象
        }
      };
      
    3. 无法用作构造函数:
      箭头函数不能用作构造函数,不能使用new关键字来创建实例对象。

      // 普通函数
      function Person(name) {
        this.name = name;
      }
      
      const person = new Person('Alice');
      
      // 箭头函数
      const Person = (name) => {
        this.name = name; // Error: 箭头函数不能当作构造函数使用
      };
      
      const person = new Person('Alice'); // Error: Person is not a constructor
      

    总结来说,箭头函数在Vue中的主要作用是声明组件的方法,其语法简洁、有限制条件,适合于大部分情况下的函数定义。但需要注意的是,箭头函数不适用于需要动态绑定this的场景,例如事件处理函数。在这些情况下,应使用普通函数来定义方法。

    1年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部