zoukankan      html  css  js  c++  java
  • 函数中this的指向

      每个函数在被调用时都会自动取得两个特殊变量:this和arguments;内部函数在搜索这两个变量时,只会搜索到其活动对象为止,因此永远不可能直接访问外部函数中的这两个变量。

    f 1     var name = "The Window"
     2 
     3     var object = {
     4       name: "My Object",
     5       getNameFunc : function() {
     6         console.log(this.name);   //输出:My Object
     7         return function() {
     8           return this.name
     9         }
    10       }
    11     }
    12 
    13     console.log(object.getNameFunc()());   //输出:The Window

      不过,把外部作用域中的this对象保存在一个闭包能够访问到的变量里,就可以让闭包访问该对象了,例子如下:

     1     var name = "The Window"
     2 
     3     var object = {
     4       name: "My Object",
     5       getNameFunc : function() {
     6         var that = this   //重点在本行
     7         console.log(this.name);   //输出:My Object
     8         return function() {
     9           return that.name
    10         }
    11       }
    12     }
    13 
    14     console.log(object.getNameFunc()());   //输出:My Object

     知识点:红宝书182页

    今天你学习了吗!!!
  • 相关阅读:
    悬线法练习
    Codechef MAY 15 Counting on a directed graph
    Codechef MAY 15 Chef and Balanced Strings
    兔子与兔子
    雪花雪花雪花
    约数之和
    分形之城
    递归实现组合型、指数型、排列型 枚举
    最短Hamilton路径
    六十四位整数乘法
  • 原文地址:https://www.cnblogs.com/nayek/p/11749717.html
Copyright © 2011-2022 走看看