this面试题

下面代码会打印什么

var name = "222";
var a = {
	name: "111",
	say: function () {
		console.log(this.name);
	}
}
var fun = a.say;
fun();		//222
a.say();	//111

var b = {
	name : "333",
	say: function (func){
		func();
	}
}

b.say(a.say);	//222
b.say = a.say;	
b.say();		//333

倒数第二个为什么会打印222

是因为b的say函数中是直接调用的func(),虽然是在b内,但是func在执行的时候并没有绑定在某个对象上,相当于是全局状况下调用,所以打印 ”222“



答案:

打印456

下面这道题有点意思


结果

因为this是window

变形:


打印结果: 123



运行  test   0            5                     0

new  test   0            undefind        0




直接报错

‘Hello’ is not defined


JS克隆一个对象(浅拷贝

 



评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值