this只要未被绑定,默认就是指向window对象
<script language="JavaScript">
var name='小王',age=17;
var obj={
name:'小张',
objAge:this.age,
foo:function(){
console.log( this.name + '年龄是' + this.age)
}
}
console.log(obj.objAge); // 17
obj.foo() // 小张年龄是undefined
</script>
输出结果为:
17
小张年龄是undefined
JavaScript从入门到放弃 第十一章 深入理解this指向 --小马哥老师
https://www.bilibili.com/video/BV167411v7bB?
【智能社】公开课——JavaScript的This——Blue(石川)主讲
https://www.bilibili.com/video/BV1MZ4y1H7e7
原生JavaScript实现call、apply和bind - Web前端工程师面试题讲解 --技术蛋老师
https://www.bilibili.com/video/BV1m54y1q7hc?
Js函数加括号、不加括号
函数只要是要调用它进行执行的,都必须加括号。此时,函数()实际上等于函数的返回值。当然,有些没有返回值,但已经执行了函数体内的行为,这个是根本,就是说,只要加括号的,就代表将会执行函数体代码。
不加括号的,都是把函数名称作为函数的指针,用于传参,此时不是得到函数的结果,因为不会运行函数体代码。它只是传递了函数体所在的地址位置,在需要的时候好找到函数体去执行。
函数调用都得加()
传说中的
(function() {
})();
无非就是
绿括号 -> 函数定义
蓝括号 -> 函数执行
红括号 -> 把整个函数定义包起来,定义完了再执行,看得更直观