JavaScript中this的用法

1. JavaScript 中 this 的用法

this是 JavaScript 语言的一个关键字。

它是函数运行时,在函数体内部自动生成的一个对象,只能在函数体内部使用。

function test() {
  this.x = 1;
}

函数test运行时,内部会自动有一个this对象可以使用。

1.1. 函数调用

函数可以直接被调用,这个时候this被绑定到了全局对象。

var x = 1;
function test() {
// this指向的是window
  console.log(this.x);
}
// window.test()
test();                     //1

1.2. 对象方法调用

函数还可以作为某个对象的方法调用,那么this就是指这个上级对象。

    var obj = {
      name: 'yy',
      sayHello: function () {

        // this =>  obj
        console.log(this);
      }
    }

    obj.sayHello();

1.3. 构造函数调用

所谓构造函数,就是生成一个新的对象。这时,这个this就是指这个对象。

    function Person() {

      this.name = 'yy';
      this.sayHello = function () {
        console.log(this);
      }
    }

    var p = new Person();
    p.sayHello();

1.4. apply()调用

apply()是函数的一个方法,作用是改变函数的调用对象。它的第一个参数就表示改变后的调用这个函数的对象。因此,这时this指的就是这第一个参数。

var x = 0;
function test() {
 console.log(this.x);
}

var obj = {};
obj.x = 1;
obj.m = test;
obj.m.apply() // 0

apply()的参数为空时,默认调用全局对象。因此,这时的运行结果为0,证明this指的是全局对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值