1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Document</title>
- <script>
- /*
- 解析器在调用函数时,每次都会向函数内部传递进一个隐含的参数
- 这个隐含的参数就是this,this指向的是一个对象,
- 这个对象我们称为函数执行的上下文对象,
- 根据函数的调用方式的不同,this会指向不同的对象
- 1.以函数的形式调用时,this永远都是window
- 2.以方法的形式调用时,this就是调用方法的那个对象
- */
- // function fun(a,b){
- // // console.log("a="+a,"b="+b);
- // console.log(this);
- // }
- // fun(12,23);
- function fun(a,b){
- console.log(this.name);
- }
- //创建一个对象
- var obj = {
- name:"孙悟空",
- sayName:fun
- };
- obj.sayName();
-
- var obj2 = {
- name:"二师兄",
- sayName:fun
- };
- // console.log(obj.sayName == fun);//结果为true
- var name = "全局的name属性";
- //以方法的形式调用,this是调用方法的对象
- obj2.sayName();//输出结果为“二师兄”
- //以函数的形式调用,this是window
- fun();//相当于window.fun(),输出结果为"全局的name属性"
- //以方法的形式调用,this是调用方法的对象
- obj.sayName();
- </script>
- </head>
- <body>
-
- </body>
- </html>
|