找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索本站精品资源

首页 教程频道 小程序开发 查看内容

【新手入门】javascript新手学习第九课

作者:模板之家 2018-1-24 15:23 180人关注

什么是this,this就是这个,其实在javascript中this挺迷惑人的,谁知道特么this到哪一个了,那么,上代码 var a=1; var b={ a:0, c:(function(){ this.a=2; a=7; console.log(this.a+this.a); console.log(第一层+a); ...

什么是this,this就是这个,其实在javascript中this挺迷惑人的,谁知道特么this到哪一个了,那么,上代码
  1. var a=1;
  2.         var b={
  3.             a:0,
  4.             c:(function(){
  5.                 this.a=2;
  6.                 a=7;
  7.                 console.log("this.a"+this.a);               
  8.                 console.log("第一层"+a);
  9.                 return function(){
  10.                     console.log("第二层"+a);
  11.                     return this.a=4;                                                
  12.                 }
  13.             })()
  14.         };
  15.         console.log("全局"+a);
  16.         console.log("返回值"+b.c());


直接复制了控制台输出

  1. [Web浏览器] "this.a2"  /HelloHBuilder/index.html (22)
  2. [Web浏览器] "第一层7" /HelloHBuilder/index.html (23)
  3. [Web浏览器] "全局7"  /HelloHBuilder/index.html (30)
  4. [Web浏览器] "第二层7" /HelloHBuilder/index.html (25)
  5. [Web浏览器] "返回值4" /HelloHBuilder/index.html (31)
通过对比我们可以发现,一个函数内,使用var的变量是局部变量,不使用var的变量则会从上一级作用域里获取,而this只能获取到当前作用域内的相关变量
所以this又相当于指向的是当前对象
通过对象来调用函数,this指向了对象,如果把对象的函数变成变量,这个变量属于全局,this指向了window如
  1. function b(){
  2.        return this;
  3.     }
  4.     var a=b();  
  5.     console.log(a)//[object Window]
 

路过

雷人

握手

鲜花

鸡蛋
原作者: 模板之家 来自: 网络收集

全部回复(0)