思考题(闭包)

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>Document</title>
  </head>

  <body>
    <script>
      // 思考题 1:

      var name = "The Window";
      var object = {
        name: "My Object",
        getNameFunc: function() {
          return function() {
            return this.name;
          };
        }
      };

      console.log(object.getNameFunc()());
      // var f = object.getNameFunc();
      // 类似于
      // var f = function() {
      //     return this.name;
      // }
      // f();  //指向 window

      // 思考题 2:

      // var name = "The Window";
      // var object = {
      //     name: "My Object",
      //     getNameFunc: function() {
      //         var that = this;
      //         return function() {
      //             return that.name;
      //         };
      //     }
      // };
      // console.log(object.getNameFunc()())

      // 类似于
      //   var f = object.getNameFunc();
      //   f = function() {
      //     return that.name;
      //   };
      //   f();  // 指向object对象
    </script>
  </body>
</html>

猜你喜欢

转载自www.cnblogs.com/qtbb/p/11823613.html