javascript 一些关于原型理解和for in的遍历

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
function Protect(name){
this.name=name;

}
//原型是一个对象,其他对象可以通过它实现属性继承。
Protect.prototype.name="张三";
var p=new Protect('李四');
console.log(p.name);//李四  自身的大于原型的优先级
p.name='王五';
console.log(p.name);
//遍历属性 通过 for in、
var obj={
age:12,
name:'xxx',
job:'js'
}
for(var i in obj){
console.log(obj[i]);
}
 
function pro(name,age){
this.name=name;
this.age=age;
this.method=function (){
return 'this is a test';
}
}
pro.prototype.hobby='篮球';
pro.prototype.qq=1233222;
var p1=new pro('yyyy',19);
//会显示所有的5个属性 包括继承的属性
for(var p in p1){
console.log(p);
}
//如果不想显示继承的属性 只显示自身的属性 可以通过判断来完成
//hasOwnProperty()判断是否属于自身的属性
console.log('---------');
for(var p in p1){
if(p1.hasOwnProperty(p)){
console.log(p);
}
}
 
 
var pet={
eye:'blue',
nose:'big',
mouse:1
}
function dog(name){
this.name=name;
}
dog.prototype=pet;
var dog1=new dog('xiaoxiao');
console.log(dog1.name);
//检测pet是不是dog1的原型
console.log(pet.isPrototypeOf(dog1));//true

var dog2=new dog('xxxx');
dog2.eye='balck';
dog2.age=12;
console.log(dog2.eye);
console.log(dog2.age);
console.log(dog2.__proto__);//proto某个实体对象的原型
</script>
</head>
<body>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值