每日总结之JS中的this指向


前言

此文章为每日学习总结,仅代表个人见解(如有错误欢迎私信指正)

一、全局作用域中的this指向

全局作用域中的this指向是确定的,指向window。

代码如下(示例):

console.log(this,window)

 得到的结果:

二、函数和对象中的this:

1.对象中的this

代码如下(示例):

      var obj = {

        name: "zs",

        age: 20,

        sayHello(content, num) {

          console.log(this.name + "说:你好" + content + "数字:" + num);

        },

      };

这里的this指向obj,原因:obj调用了sayHello(),sayHello()中的this就指向了obj。

2.函数中的this

函数中的this规律和对象是一样的,都是谁调用,this就指向谁

代码如下(示例):

 function fun2() {

        console.log(this);

      }

      window.fun2(); // window

      var obj3 = { name: "王五" };

      fun2.call(obj3); // obj3

3.闭包中的this

借助临时的变量把外层outer中的this存储了一下,将来在内层函数使用时,内层函数中self就和外层函数中的this指向一样了。而内层函数中的this具体看谁来调用它。

代码如下(示例):

 function outer() {

        var a = 10;

        var self = this;

        return function () {

          console.log(self);

          console.log(this)

          return a;

        };

      }

 var result = window.outer();

      var obj5 = {name: "王五3"}

      result.call(obj5)

打印结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值