您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

ES6+ 箭头函数

var title = "全局";
var imooc = {
	title: "网 ES6 Wiki",
	getTitle : function(){
		console.log(this.title);
	}
};
imooc.getTitle();		// 网 ES6 Wiki
var bar = imooc.getTitle;
bar();		// 全局

var title = "全局";
var imooc = {
	title: "网 ES6 Wiki",
	getTitle : () => {
		console.log(this.title);
	}
};
imooc.getTitle();		// 全局
var bar = imooc.getTitle;
bar();		// 全局

// ES5
var sum = function () {
  // todo
};
// ES6
var sum = () => {
  // todo
}

var sum = (num1, num2) => num1 + num2;

var sum = num => num + ;

// ES5
[,,].map(function (x) {
  return x * x;
});
// 等同于ES6
[,,].map(x => x * x);

var getimooc = () => ({a: , b: });
getimooc()  // {a: 1, b: 2}

var sum = (num1, num2 = ) => num1 + num2;
console.log(sum())   // 3

var fun = (param1, param2, ...rest) => {
  console.log(param1)
  console.log(param2)
  console.log(rest)
};
fun(, , , , );
// 1
// 2
// [3, 4, 5]

// 在构造中
function Person(){
  this.age = ;
  setTimeout(function(){
    console.log(this);
  }, )
}
var p = new Person();   // Window: {parent: Window, opener: null, top: Window, length: 0, frames: Window, …}

function Person(){
  this.age = ;
  setTimeout(() => {
    console.log(this);
  }, );
}
var p = new Person();   // Person: {age: 0}

function Person(){
  var imooc = {};
  imooc.num = ;
  imooc.getValue = () => {
    console.log(this)
  }
  return imooc;
}
var p = new Person();
p.getValue()
// person {} 

function Person(){
  var imooc = {};
  imooc.num = ;
  imooc.getValue = function() {
    console.log(this)
  }
  return imooc;
}
var p = new Person();
p.getValue()
// {num: 10, getValue: ?}   this指向的是 p 的返回值

var fun = function() {
  console.log(arguments)
};
fun(,,);  // Arguments(3) [1, 2, 3, callee: ?, Symbol(Symbol.iterator): ?]

var fun = () => {
  console.log(arguments)
};
fun(,,);  // Uncaught ReferenceError: arguments is not defined

function foo(...args) { 
  console.log(args)
}
foo();         // [1]
foo(, , );   // [1, 2, 3]

var Foo = () => {};
var foo = new Foo(); // TypeError: Foo is not a constructor

var Foo = () => {};
console.log(Foo.prototype); // undefined


联系我
置顶