【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
//赋值是从右往左的,b在块里面没有申明,所以js引擎会在全局作用域里面申明一个,然后执行的时候就会赋值5.
// a是声明了的,在外部作用域无法访问
(function () {
var a=b=5;
})();
console.log(a); //报错a is not defined
console.log(b); //5
var fullName = '1';
var obj = {
fullName:2,
prop:{
fullName:3,
getFullName: () => {
console.log(this.fullName);
}
}
}
//依次输出123,这是this的绑定机制
//如果把getFullName换成箭头函数的话,结果会是怎么样的呢 输出全部是1 ,因为obj不会产生作用域
//箭头函数的this是继承自自己作用域链的上一层的this,任何方法都改变不了,包括call,apply,bind。
//普通函数的this指向调用它的那个对象。
obj.prop.getFullName();
obj.prop.getFullName.call(window);
obj.prop.getFullName.call(obj);
obj.prop.getFullName.call(obj.prop);
来源:oschina
链接:https://my.oschina.net/u/2285087/blog/3141692