首页 > 编程语言 > 详细

关于Javascript中的this指向问题

时间:2020-03-30 19:00:34      阅读:69      评论:0      收藏:0      [点我收藏+]

问题背景

太久没写,有些忘记JS的一些知识点.今天遇到构造函数中的this指向问题.作此摘抄,以备再次忘记.以下文章均来自互联网.在底部标有出处.感谢开放的互联网技术??




摘抄段落

1、在许多文献中关于this的指向 都是 谁调用这个方法 这个方法内的this就指向谁;可是为什么构造函数里面的this会指向实例呢,当然,我这里并不是调用的原型里面的方法。
2、代码如下:


function p(){
            console.log(this)
        }
 new p();
function fn(){
            console.log(this);
        }
 fn();

你说的只是四种情况之一。

  • 构造函数的调用其中有几步是:

    • 创建一个新对象;
    • 将构造函数的作用域赋给新对象(因此this就指向了这个新对象);
    • 执行构造函数中的代码;
    • 返回新对象;
      《JavaScript高级程序设计》6.2.2
      重点是先改变this指向,再执行构造函数中的代码。
  • new的步骤:

    • 1、创建了一个新对象p
    • 2、将新对象p的construtor指向构造函fucntion p(){console.log(this)};
    • 3、把新对象p的prototype chain(原型链)→ 指向p.prototype(构造函数的原型对象)
    • 4、执行构造函数p中的代码
      所以是新对象p调用了这个构造函数,构造函数的this不指向新对象p指向谁?



参考

关于Javascript中的this指向问题

原文:https://www.cnblogs.com/gtscool/p/12600085.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!