zoukankan      html  css  js  c++  java
  • js中this指向、箭头函数

    普通函数:this指向分为4种情况,
    1. obj.getName();//指向obj
    2.getName();//非严格模式下,指向window,严格模式下为undefined
    3. var a = new A();
       a();//指向A本身
    4.getName().apply(obj);//指向obj

    箭头函数:箭头函数本身是没有this和arguments的,在箭头函数中引用this实际上是调用的是定义时的上一层作用域的this。
    这里强调的是上一层作用域,是因为对象是不能形成独立的作用域的。
    例如:

    (1)、

    var obj = {
      say: function() {
      var f1 = ()=>{
        console.log("1111",this);
      }
      f1();
      }
    }
    var o = obj.say;
    o();//f1执行时,say函数指向window,所以f1中的this指向window
    obj.say();//f1执行时,say函数指向obj,所以f1中的this指向obj;

    (2)、

    var ojb = {
      pro: {
        getPro: ()=>{
          console.log(this);
        }
      }
    }
    obj.pro.getPro();//this指向的是window,因为箭头函数定义时,getPro的上一级是pro,是一个对象,不能形成单独的作用域,故指向window。


  • 相关阅读:
    缓冲流
    properties类
    io流
    异常处理
    file的概述和作用
    map集合和set集合
    js 判断是否是undefined null NaN
    java instanceof 判断是否是String
    ajax获取数据中文乱码问题最简单的完美解决方案
    if else if else if else 的用法
  • 原文地址:https://www.cnblogs.com/ckAng/p/10595259.html
Copyright © 2011-2022 走看看