【Web前端问题】关于原型链问题,望高手解答

原型链问题, 问题在最后一行

//定义方法

function foo(){}

//原型链赋值

foo.prototype.z = 3

//定义一个新的对象

var obj=new foo()

obj.a // 返回undefined

obj.z // 返回3

obj.hasOwnProperty('z') //返回false

foo.hasOwnProperty('z') //返回false ????问题就在这, 这不是应该返回true么?

运行图如下:
图片描述

回答:

zfoo.prototype 的属性,不是 foo 的属性。

foo 不是 foo.prototype

回答:

https://developer.mozilla.org...

所有继承了 Object 的对象都会继承到 hasOwnProperty 方法。这个方法可以用来检测一个对象是否含有特定的自身属性;和 in 运算符不同,该方法会忽略掉那些从原型链上继承到的属性。

回答:

并没有毛病啊,本来就是false,你在用hasOwnProperty有没有了解过这个函数是什么意思,为什么要是true呢

以上是 【Web前端问题】关于原型链问题,望高手解答 的全部内容, 来源链接: utcz.com/a/140046.html

回到顶部