关于‘new’的一个小问题?
上面是代码,想执行'person1.func3()'。
结果如下图
疑问是,在实例对象person1的__proto__里能找到func3这个函数,为什么执行的时候会报错呢?
谢谢!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Person.prototype.func3 = function () {
console.log('this is func3')
};
好像通过 实例.prototype 添加方法的话就能访问了。。。
为什么必须使用 prototype 添加才好使呢。。。
回复
1个回答

test
2024-07-04
你的 func3
是挂在 constructor
下面的,只是 Person
这个构造器的一个属性而已,和 Prototype
无关
而正常的原型链方法应该是挂在 [[Prototype]]
下面的
Person.prototype.func4 = function () { console.log('f4') }
要挂在原型下面才能被原型链找到使用。
回复

适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容