zoukankan      html  css  js  c++  java
  • 函数内部的函数中的this都是指向window

    刚看到一个问题关于this的,

    1   var name="the window";
    2     var object={
    3         name:"silence",
    4         packname:function(){
    5             return this.name;
    6         }
    7     }
    8     console.log(object.packname());

    一般而言,在Javascript中,this指向函数执行时的当前对象。这个this指object。输出结果为 silence

    改变一下

    1 var name="the window";
    2     var object={
    3         name:"silence",
    4         packname:function(){
    5             return this.name;
    6         }
    7     }
    8     var show=object.packname;
    9     console.log(show());

    当没有明确的执行时的当前对象时,this指向全局对象window。

    这里show=object.packname;show();这里show没有明确的指明执行对象,所以等同于 window.show();结果是 the window

    再改一下

     1   var name="the window";
     2     var silence={
     3         name:"silence",
     4         packname:function(){
     5             return this.name;
     6         }
     7     }
     8     var seraph={
     9         name:"seraph",
    10         packname:function(){
    11             var fun=silence.packname;
    12             return fun();
    13         }
    14     }
    15     console.log(seraph.packname());

    与2类似,fun();得到the window,fun()可以看出函数内部的函数指向window。我是这样理解的。

  • 相关阅读:
    字符串时间+8个小时
    Django的field字段与参数介绍
    celery+Django
    二分查找
    排序算法
    socket套接字
    网络七层协议简述
    ORM操作mysql数据库多表的增删改查
    ORM操作mysql数据库
    Django框架静态文件配置和URL解析
  • 原文地址:https://www.cnblogs.com/MissBean/p/this.html
Copyright © 2011-2022 走看看