匿名函数、普通函数、箭头函数作用域

匿名函数

/***************************************
* 匿名函数的this指向具有全局性 
* 当this在函数内找不到时,会去全局查找
/***************************************/
name = "duck_99"
var duck1 = {
	name: "duck_11",
	funcA: function(){
		return function(){
			console.log(this.name);
		}
	}
}
var duck2 = {
	name: "duck_22",
	funcA(){                 //函数名与变量相同的时候简写
		return function(){
			console.log(this.name);
		}
	}
}
duck1.funcA()();      //打印:duck_99
duck2.funcA()();      //打印:duck_99
console.log("-------------------------------")

普通函数

/***************************************
*普通函数的this指向当前定义的函数内部,
*但是当函数被其他对象调用时this指向调用者的内部
/***************************************/
name = "oooooooooo";
var dog = {
	name: "小黑",
	funcA: function(){
		var name = "haha";
		console.log(this.name);
	}
}
dog.funcA();     //函数内的this指向调用者obj本身,这里打印:小黑
var funcB = dog.funcA;
funcB();     //函数内的this指向全局变量func调用者本身:打印:oooooooooo
console.log("-------------------------------")

箭头函数

/***************************************
* 箭头函数的this定义:
* 箭头函数的this是在定义函数时绑定的,不是在执行过程中绑定的。
* 简单的说,函数在定义时,this就继承了定义函数的对象。
/***************************************/
var person = {
	name: "小明",
	age: 23,
	funcA: function(){
		var name = "momo";
		funcB = ()=>{
			console.log(this.name);     //打印:小明
		}
		funcB();
		console.log(this.name);     // 打印小明
	}
}
person.funcA();
console.log("-------------------------------")

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值