JS嵌套函数调用上下文的问题解决

复制代码 代码如下:

  <!doctype html>

  <html lang="en">

  <head>

  <meta charset="UTF-8">

  <title>Document</title>

  </head>

  <script>

  var stu ={

  m: function(){

  var self = this;

  console.log(this === stu); // ==> true;

  function f(){

  // 调用嵌套函数时this不是指向调用外层函数的上下文

  console.log(this === stu); // ==> false;

  如果想访问外部函数的this需要将外部函数的this保存在一个变量中。

  console.log(self === stu); // ==> true;

  }

  f();

  }

  }

  </script>

  <body>

  </body>

  </html>