JavaScript的原型方法

一、hasOwnProperty()

功能介绍:

判断是否是对象的属性(非继承属性),无法判断原型链上的属性;返回boolean值,true-是对象的属性;false-不是对象的属性;

示例代码:

let Animal = function(name,age){
    this.name = name;
    this.age = age;
};
//为Animal的原型添加属性
Animal.prototype.speak="wang! wang!";
let dog = new Animal("dog","5");
//判断name是否dog对象的属性
console.log(dog.hasOwnProperty("name"))
//判断speak是否是dog对象的属性
console.log(dog.hasOwnProperty("speak"));

结果:

二、isPrototypeOf()

功能介绍:

判断一个对象是否是另一个对象的原型;

示例代码:

let Animal = function(name,age){
    this.name = name;
    this.age = age;
};
let cat= new Animal("cay","3");
//判断Animal.prototype 是否是cay的原型
console.log(Animal.prototype.isPrototypeOf(cat))

结果:

三、Obeject.getPrototypeOf()

功能说明:

获取某个对象的原型对象。

注意:此方法为ECMAScript 5新增,支持该方法的浏览器有IE9+,Firefox 3.5+,Safari 5+,Opera 12+,Chrome.

代码示例:

let Animal = function(name,age){
    this.name = name;
    this.age = age;
};
let pig = new Animal("pig","2");
//获取pig的原型链
console.log(Object.getPrototypeOf(pig) === Animal.prototype)

结果:

四、in操作符

功能介绍:

检测属性是存在于实例还是原型中。

注意:可以和hasOwnProperty()配合使用,判断属性是否是原型中的属性

代码示例:

let Animal = function(name,age){
    this.name = name;
    this.age = age;
};
Animal.prototype.speak='momo';
let monkey = new Animal("monkey ","12");
//判断name是否是monkey 的属性
console.log("name" in monkey);
//判断speak是否是monkey的属性
console.log("speak" in monkey);

结果:

和hasOwnProperty()一起使用,判断属性是否属于原型中的属性:

function hasPrototypeProperty(object,name){
     //不是自身属性,但能够访问到 就是原型属性  
     return (name in object)&&!object.hasOwnProperty(name);
} 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值