Javascript原型相关的函数

一、isPrototypeOf

测试一个对象的原型是否是一个类的原型的方法。例如
function Person(){}
Person.prototype.name=”Leo”;
var p1=new Person();
Person.prototype. isPrototypeOf(p1);//将会返回true,这句代码的意思是,Person的
//原型是否是p1的原型


二、Object.getPrototypeOf

获取对象原型的方法。
例如上面的例子:alert(Object.getPrototypeOf(p1)==Person.prototype);//返回true
此方法支持的浏览器有IE9+ 、Firefox3.5+ 、Safari5+ 、Opera12+ 、Chrom


三、hasOwnProperty

检测属性是在实例还是原型中的方法。示例:
function Person(){}
Person.prototype.name=”Leo”;
var p=new Person();
console.log(p. hasOwnProperty(“name”));//打出false
p.name=”Linda”;
console.log(p. hasOwnProperty(“name”));//打出true


四、in操作符

示例:
function Person(){}
Person.prototype.name=”Leo”;
var p=new Person();
console.log( “name” in p);//打出true
p.name=”Linda”;
console.log( “name” in p);//打出false
结论:in是检测一个属性是否在一个对象中的,无论这个属性是在实例还是原型,只要这个属性存在于对象中,并且是可访问的,就返回true于是,根据hasOwnProperty和in操作符,我们可以判断原型是否有某个属性
function hasPrototypeProperty(obj,property){
return !obj. hasOwnProperty(property) && (property in obj);
}


五、Object.keys()

获取所有可枚举的实例属性,注意,获取的是实例属性,不是原型的

示例:
function Person(){
this.name= “Leo “;
}
Person.prototype.age=18;
var person=new Person();
console.log(Object.keys(person));//打印出name


六、Object.getOwnPropertyNames()

获取所有实例属性,无论属性是否可枚举。在高版本浏览器中可能效果跟keys一样,只能获取可枚举的实例属性。
示例:
function Person(){
this.name= “Leo “;
}
Person.prototype.age=18;
var person=new Person();
console.log(Object. getOwnPropertyNames (person));//打印出name或
// name,constructor

注意这里获取的也是实例的属性,但是此方法可以将不可枚举的属性也获得,例如constructor,在高版本浏览器可能获取不到constructor

阅读更多
文章标签: javascript 原型函数
上一篇JavaScript数据类型、类与对象
下一篇Javascript对象创建
想对作者说点什么? 我来说一句

深入理解javascript原型和闭包

2015年11月30日 1.17MB 下载

javascript打印函数(所有对象)

2014年08月21日 601B 下载

javascript 函数原型

2007年11月30日 34KB 下载

C 语言库函数使用手册.CHM

2009年04月15日 95KB 下载

atoi函数原型代码

2014年04月29日 218B 下载

循环自相关函数,matlab程序

2010年05月07日 697B 下载

深入理解JavaScript系列.chm

2012年05月30日 918KB 下载

语音信号自相关函数MATLAB代码

2014年04月08日 2KB 下载

没有更多推荐了,返回首页

关闭
关闭