下面代码会打印什么
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克隆一个对象(浅拷贝)