22 箭头函数

箭头函数
      为什么:
			让this始终指向包含它的对象
      是什么:
			箭头左边是参数,右边是函数体
 	  只包含一个表达式,连{ ... }和return都省略掉了。
      还有一种可以包含多条语句,这时候就不能省略{ ... }和return:
	   
		var fn = x => x * x;
	
		x => {
			if (x > 0) {
				return x * x;
			}
			else {
				return - x * x;
			}
		}

	this
		箭头函数看上去是匿名函数的一种简写,
		但实际上,箭头函数和匿名函数有个明显的区别:箭头函数内部的this是词法作用域,由上下文确定。
                  this默认指向全局变量或undefined(strict模式下的报错),只有对象调用时,才让this指向对象
		var obj = {
			birth: 1990,
			getAge: function () {
				var b = this.birth; // 1990
				var fn = function () {
					return new Date().getFullYear() - this.birth; // this指向window或undefined
				};
				return fn();
			}
		};
		
		var obj = {
			birth: 1990,
			getAge: function () {
				var b = this.birth; // 1990
				var fn = () => new Date().getFullYear() - this.birth; // this指向obj对象
				return fn();
			}
		};

  

posted on 2019-06-10 16:12  悬剑  阅读(78)  评论(0编辑  收藏  举报

导航