
文章目录

- function fun(a,b){
- console.log(a + b);
- }
-
- fun(1,2);
我们通过形参的形式往参数中添加了参数。浏览器也会默默的给我们传递一个参数过去,这个参数被称为this。传递的节点就是在调用函数的时候。而且,每次都会传。

传递过去的this对象就是全局的window对象。他是调用方法的时候,浏览器给传递过去的,这个是一个上下文对象。
当然这个上下文对象不会一直是window对象的,根据函数的调用方式不同,我们this对象指向不同的对象。
- function fun(){
- console.log(this);
- }
-
- fun();
-
- var obj = {
-
- name:"孙悟空",
- sayName:fun
- };
-
- obj.sayName();//[object Object]
-
- fun();//[object window]

使用fun()函数的方式调用时,this永远是window。(本质上这属于window.fun())
基于方法的形式调用时,this永远是这个方法所在的对象。
this这个变量指向的对象是会变的,根据调用方式的不同,this只想的具体的对象也不同。
- var name = '全局';
- function fun(){
-
- console.log(this.name);
- }
-
-
- var obj = {
-
- name :"孙悟空",
- sayName:fun
- };
-
- var obj2 = {
-
- name :"沙和尚",
- sayName:fun
- };
-
-
- fun();
- obj.sayName();
- obj2.sayName();
-


