ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
解析器在调用函数每次都会向函数内部传递进一个隐含的参数,这个隐含的参数就是this, this指向的是一个对象,这个对象我们称为函数执行的上下文对象,根据函数的调用方式的不同, this会指向不同的对象 1·以函数的形式调用时, this永远都是window 2,以方法的形式调用时, this就是调用方法的那个对象 js的变量都保存在栈内存中 ``` var name="dash"; ``` ![](https://img.kancloud.cn/46/e6/46e6e4bdac358ae83ca8abba8abd7da0_648x313.png) ``` var username=name; ``` ![](https://img.kancloud.cn/07/f9/07f960f6060ab9f984c5d2500eddd9fc_648x320.png) ``` username="tom" ``` ![](https://img.kancloud.cn/68/63/68638c52b733b94fbccd84451267ebd4_636x325.png) ``` name="jay" ``` ![](https://img.kancloud.cn/0e/33/0e338e06ae7b5ecda963879bd60bc4a8_640x322.png) js中的对象保存在堆内存中,没创建一个对象就会在堆内存中开辟一个新空间,而类变量保存的是对象的内存地址(对象引用) ``` var obj=new Object(); ``` ![](https://img.kancloud.cn/03/e0/03e0d4274a09fbce371b6656fcaf8de1_653x315.png) ``` obj.name="dash"; ``` ![](https://img.kancloud.cn/0e/e5/0ee5379e2095d9a349bb47eb7042e01d_660x320.png) ``` obj=obj2 ``` ![](https://img.kancloud.cn/9d/47/9d47a3b5f1f33d6ae088be24d33218ae_652x330.png) ``` obj2.name="tom"; console.log(obj.name);//tom console.log(obj1.name);//tom ``` ![](https://img.kancloud.cn/df/b7/dfb7e731f4f413d0770364e4c7894431_646x323.png) ``` obj3=new Object() ``` ![](https://img.kancloud.cn/c8/82/c88218ad3ab8341570908206c4a5ab24_663x336.png) 设置obj为null则断开引用 ##