关于hasOwnProperty的小试验

首先看一段代码:

Fun = new Object({b:3});
Fun.prototype  = {c:4};
Fun.d = 5;
console.log(Fun.hasOwnProperty("b"));//true
console.log(Fun.hasOwnProperty("c"));//false
console.log(Fun.hasOwnProperty("d"));//true
<pre name="code" class="javascript">console.log(Fun);//Object {b: 3, prototype: Object, d: 5}
 

给出了三个结果。解释一下,b是Object实例化时给出的属性,自然是Fun对象的属性,true。c是Fun对象prototype的属性,所以结果为false。d是Fun直接赋予的属性,所以结果也为true。

最后console了下Fun对象,hasOwnProperty的判断结果一目了然。

然后再来一段代码:

function Fun(a){
    this.a = 2;
}
Fun.prototype = {c:4};
Fun.d = 5;
console.log(Fun.hasOwnProperty("a"));//false
console.log(Fun.hasOwnProperty("c"));//false
console.log(Fun.hasOwnProperty("d"));//true
console.log(Fun);//Fun(a)

现在的状态下,由于Fun为构造器,所以a属性不属于Fun所有。new一个新对象可继承到a属性//由于d可以被判断true,所以我觉得Fun对象是可以调用hasOwnProperty的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值