js中构造函数使用new创建对象时,this与新建对象关系是怎样的?

Slogic 2018-04-27 05:55:41
JavaScript高级程序设计(第3版)P144
其中(2)所表达的意思。与我的理解有所出入。
-------------------------------引用高程内容 start---------------------------------------


英文解释
To create a new instance of Person, use the new operator. Calling a constructor in this manner
essentially causes the following four steps to be taken:

Create a new object.
Assign the this value of the constructor to the new object (so this points to the new object).
PS:(将构造函数的this的值赋给新的对象)

Execute the code inside the constructor (adds properties to the new object).
Return the new object.
------------------------------引用高程内容 end--------------------------------------
关于使用new关键字调用构造函数的步骤,以下是我的理解。
(1).var newobj = {}; //首先创建一个新的临时对象
(2).newobj.call(newobj ); //在新对象的作用域中执行构造函数。
也就是将newobj赋给this。而书上说的正相反。“将构造函数的this的值赋给新的对象”。如何理解这句话?
...全文
1063 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Slogic 2018-04-30
  • 打赏
  • 举报
回复
引用 2 楼 天际的海浪的回复:
其实书上这个解释还少了最关键的一步: 将构造函数的 prototype 赋给新对象的 __proto__
好的,谢谢您的解答,这样就不用担心自己理解错了,哈哈哈。这几天出差在外。手机找不到结贴。回去就结贴。再次感谢。
天际的海浪 2018-04-27
  • 打赏
  • 举报
回复
其实书上这个解释还少了最关键的一步: 将构造函数的 prototype 赋给新对象的 __proto__
天际的海浪 2018-04-27
  • 打赏
  • 举报
回复
正确的就是将newobj赋给this。书上说的应该也是这个意思,只是描述时笔误写错了。的 作者应该是想说:“将构造函数的this赋予为新对象”

87,902

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧