美文网首页
JavaScript中的this

JavaScript中的this

作者: yangrenmu | 来源:发表于2017-08-17 10:52 被阅读0次

JavaScript中this有多种含义,完全取决于this的调用方式。

  • 1、默认绑定
 function foo() {
   console.log(this.a); // 2
 }
 var a = 2;
 foo();

函数foo() 在调用时,this被默认绑定到了全局对象。

  • 2、作为对象方法调用
 function foo() {
   console.log(this.a);
 }
 var obj = {
   a: 2,
   foo: foo,
   bar: function() {
     console.log(this.a);
   }
 };
 var a = 1;
 foo(); // 1
 obj.foo(); // 2
 obj.bar(); // 2

函数作为对象的方法调用时,this被绑定到该对象。但是当该函数内部又定义了一个函数时,内部函数的this指向window。

var obj = {
  a: 2,
  bar: function() {
    console.log(this.a); // 2
    function daz() {
      console.log(this.a); // 1
    }
    daz();
  }
};
var a = 1;
obj.bar();

/************************************************/

var obj = {
  a: 2,
  bar: function() {
    console.log(this.a); // 2
    a = 3;
    console.log(this.a); // 2
    function daz() {
      console.log(this.a); // 3
    }
    daz();
  }
};
var a = 1;
obj.bar();
  • 3、使用new绑定
    this指向new创建的对象。
  function Foo() {
    this.a = 1;
  }
  var a = 2;
  var bar = new Foo();
  console.log(bar.a); // 1
  • 4、使用apply或call绑定
    apply和call 可以改变函数执行的作用域,函数使用apply或call进行绑定时,this指向apply传入的对象;
function foo() {
  console.log(this.a);
}
var obj = {
  a: 2,
  foo: foo
}
var a = 1;  
foo.apply(obj);
foo();

相关文章

  • 1body中添加js

    1 中的 JavaScript JavaScript 函数和事件上面例子中的 JavaScript 语句,会...

  • JS中的类型转换

    JavaScript 中的类型转换 JavaScript 基本数据类型 JavaScript 中的一共有 8 中内...

  • js中的this

    javascript中的this javascript中的this与java中的this有点不同。ECMAScri...

  • JavaScript中的字符串

    @(javascript)[js字符串][toc] JavaScript中的字符串 字符串是JavaScript中...

  • 06-JavaScript数组和函数

    JavaScript数组 JavaScript中的数组可以存储不同类型的数据 JavaScript中的数组是引用类...

  • Client's JavaScript

    什么是JavaScript? JavaScript的运行环境? 浏览器中JavaScript可以做什么? 浏览器中...

  • javascript中的this

    一般说到JS的this,都会想起在函数中变来变去的this。但是事情的发生都是有规则的约束,JS中的this也不例...

  • JavaScript中的this

    什么是this? 首先对this的下个定义:this是在执行上下文创建时确定的一个在执行过程中不可更改的变量。th...

  • JavaScript中的this

    JavaScript中的this很容易让人迷惑,但弄清楚后其实还是很好区分的。JavaScript中的this总是...

  • javascript中的this

    在javascript中的this大致可以理解成谁调用的this就指向谁 全局环境中的this 函数中的this ...

网友评论

      本文标题:JavaScript中的this

      本文链接:https://www.haomeiwen.com/subject/yfrgrxtx.html