zoukankan      html  css  js  c++  java
  • JS中this的运用

    先看一段代码,请问alert的值是多少呢?

     1   function fn(){
     2     alert(this.a);
     3   };
     4   let obj ={
     5     'a':1,
     6     'b':2,
     7     'c':[{
     8         'a':3,
     9         'b':4,
    10         'c':fn
    11         }]
    16   };
    17   let a =5;
    18   obj.c[0].c();

    结果是3。

    this代表作用域的值,通俗的理解,就是 当前的方法属于谁,this就指向谁

    obj.c[0].c();

    这行代码首先调用了obj对象中 属性c的值 而C是又一个数组对象
       然后,调用了c的第一个数组,而这个数组为c[0]创建了三个属性。
         然后,调用c[0].c()方法
        这个时候,c()属于c[0]的方法
        所以,this指向的是c[0]
        所以,this.a指的是3


    看下面这个例子

      function fn(){
        alert(this.a);
      };
      let obj ={
        'a':1,
        'b':2,
        'c':[{
            'a':3,
            'b':4,
            'c':fn
            },{
            'a':4,
            'b':5,
            'c':fn
          }]
      };
      let a =5;
      obj.c[1].c();

    结果是4。

    结果印证了上面的

    this指向的是c[1]
    所以,this.a指的是4。

    重要的话再说一遍

    this代表作用域的值,通俗的理解,就是 当前的方法属于谁,this就指向谁

    你记住了吗?
  • 相关阅读:
    推荐系统学习--cb+cf 初见
    耳机的阻抗和灵敏度问题
    java中常见的几种Runtimeexception
    java泛型
    ubuntu安装opencv
    ubuntu12.04静态ip设置问题
    Graph Theory
    SQL简单上手教程
    C++ 构造函数、拷贝构造函数和赋值运算符重载
    C语言函数调用栈
  • 原文地址:https://www.cnblogs.com/chentanyueying/p/7932294.html
Copyright © 2011-2022 走看看