zoukankan      html  css  js  c++  java
  • 个人关于对象的属性值为函数在重新赋值给对象属性过程中this指向window理解

    window.name = 'window';
    const obj = {
        name: 'obj',
        getName() {
            console.log(this.name);
        }
    }; 
    (obj.getName = obj.getName)() // window

    理解:obj.getName = obj.getName的赋值操作的返回是一个函数,而当前函数是没有绑定到obj对象上的,直接调用的话this就会指向window。可以理解为赋值之前函数的指针为obj.getName,此时调用函数使用obj.getName()进行调用,this指向的是obj。在赋值的过程中函数的指针是保存在了window上,可以理解为没有对应的指针名名称的,此时调用就要在赋值操作上调用。完成赋值操作后指针重新给了obj.getName,此时再调用函数的话就要使用obj.getName()进行调用了。

     

     变量赋值这一部分代码执行的时候会有对应的返回,例如语句const a = 1;执行的时候当前语句执行结果为1 而obj.getName = obj.getName语句的执行结果为obj.getName指向为函数

  • 相关阅读:
    第十一周课堂测试 -- 四则运算
    软件工程第十一周学习进度
    软件工程课堂测试2
    软件工程概论_课堂测试
    11.16 动手动脑
    动手动脑
    网络模型分析
    Actor模型原理
    linux下启动oracle
    Linux 环境下Oracle11g安装图文详细教程
  • 原文地址:https://www.cnblogs.com/shenhf/p/15603023.html
Copyright © 2011-2022 走看看