js--打卡--11.27in vs hasOwnProperty

<script>
			
			
			//创建一个构造函数
			function Person(){
			}
			
			Person.prototype.name = "我是Person的name";
			var per1 = new Person();
			console.log(per1.name);
			
			//in VS hasOwnProperty
			//in 判断一个属性是否属于一个函数。但如果该属性在prototype(原型对象中)也会返回true
			console.log("name" in Person); //true
			
			//hasOwnProperty 判断一个属性是否属于一个函数。但如果该属性在prototype(原型对象中)会返回false
			console.log(per1.hasOwnProperty("name")); //false
			
			//?hasOwnProperty这个属性在哪里呢?
			//当一个类的实例调用一个属性的时候,会先在自身找该属性
		    //如果没有到实例的原型对象中去找,
		    //如果还没有再到实例的原型的原型中找
		    //直到找到Object的原型。
			console.log(per1.__proto__.hasOwnProperty("hasOwnProperty")); //false
			console.log(per1.__proto__.__proto__.hasOwnProperty("hasOwnProperty")); //true
			console.log(per1.__proto__.__proto__.__proto__); //null
			
		</script>
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值