ES6学习(四):简化对象写法和箭头函数

简化对象写法

  • ES6 允许在大括号里面,直接写入变量和函数,作为对象的属性和方法
// ES6允许在对象的大括号内直接写入变量和函数作为对象的属性和方法
let birth = '2000/01/01';
const Person = {
  name: '张三',
  //等同于birth: birth
  birth,
  // 等同于hello: function ()...
  hello() { console.log('我的名字是', this.name); }
};
  • 这种写法用于函数的返回值,将会非常方便
function getPoint() {
  const x = 1;
  const y = 10;
  return {x, y};
}

getPoint()
// {x:1, y:10}

箭头函数

1.基本用法

  • ES6 允许使用“箭头”(=>)定义函数。
var f = v => v;

// 等同于
var f = function (v) {
  return v;
};
  • 如果箭头函数不需要参数或需要多个参数,就使用一个圆括号代表参数部分
var f = () => 5;
// 等同于
var f = function () { return 5 };

var sum = (num1, num2) => num1 + num2;
// 等同于
var sum = function(num1, num2) {
	return num1 + num2;
};
  • 如果箭头函数的代码块部分多于一条语句,就要使用大括号将它们括起来,并且使用return语句返回
var sum = (num1, num2) => { return num1 + num2; }
  • 如果箭头函数只有一行语句,且不需要返回值,可以采用下面的写法,就不用写大括号了
let fn = () => void doesNotReturn();

2.注意事项

  • 箭头函数没有自己的this对象
    • 内部的this就是定义时上层作用域中的this
    • 也就是说,箭头函数内部的this指向是固定的
  • 不可以当作构造函数,也就是说,不可以对箭头函数使用new命令,否则会抛出一个错误
  • 不可以使用arguments对象,该对象在函数体内不存在。如果要用,可以用 rest 参数代替
  • 不可以使用yield命令,因此箭头函数不能用作 Generator 函数

你可能感兴趣的:(前端学习,ES6,学习,前端,javascript,js,es6)