javascript权威指南第六版里对Object.create的说法发现有误,求高手指教 !!!

goslingyun 2019-01-23 03:39:05
javascript权威指南第六版里面说,

“通过对象直接量或Object.create()创建的对象包含一个名为constructor的属性,这个属性指代Object()构造函数。”

我曾经一直以为是真理,今天蛮写了个测试突然发现他说得有错。
        function ConstructorTest4() {
            function F() { };
            var o = new F();
            var p = Object.create(o);
            alert(p.constructor);
        }
如果按书中所说,这段函数应该输出object的构造函数,实际却是输出F的构造函数。
所以我觉得书本笔误了,p.constructor就是原型对象o的constructor

求高手指教,不甚感激!!!
...全文
155 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
goslingyun 2019-01-24
  • 打赏
  • 举报
回复
求教,自顶一下
goslingyun 2019-01-24
  • 打赏
  • 举报
回复
你说的有道理,可是书上的原话是这句呀 “通过对象直接量或Object.create()创建的对象包含一个名为constructor的属性,这个属性指代Object()构造函数。” 或Object.create()创建的对象。
天际的海浪 2019-01-24
  • 打赏
  • 举报
回复
书上说的不严谨,书上主要说的是对象直接量, Object.create()创建的对象 只是附带。
goslingyun 2019-01-24
  • 打赏
  • 举报
回复
求教,自顶一下
天际的海浪 2019-01-23
  • 打赏
  • 举报
回复
书上说的是用对象直接量创建对象,constructor指向的自然是Object。 Object.create(o)的实际作用是创建一个新的空对象,让这个新对象的__proto__(原型)指向 o。 在访问新对象的constructor时,新对象自身没有constructor,就会往新对象的__proto__上找,也就是访问了o的constructor
goslingyun 2019-01-23
  • 打赏
  • 举报
回复
求教,自顶一下
goslingyun 2019-01-23
  • 打赏
  • 举报
回复
求教,自顶一下

87,910

社区成员

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

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