Javascript原型相关的函数
来源:互联网 发布:射雕英雄传 知乎 编辑:程序博客网 时间:2024/05/18 00:23
一、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的类,构造函数和原型
- javascript的构造函数和原型
- 我对 Javascript 原型的扩展函数
- javascript的原型和构造函数
- JavaScript的原型与构造函数
- javascript函数原型
- Javascript函数原型链
- 关于JavaScript中的new和原型的相关知识总结
- javascript继承相关的函数
- Javascript中函数、构造函数以及原型的用法区别
- js实例化的对象,函数和原型的相关
- 【JavaScript】JavaScript原型链之原型对象、实例和构造函数三者之间的关系
- 原型相关的概念
- 原型相关的概念
- [ 转]堆和栈的区别
- 怎样学习PHP
- LeetCode 66. Plus One
- Win10下GCC编译器的安装与配置
- opengl学习——绘制图形
- Javascript原型相关的函数
- 关于JAVA中文乱码
- domino处理ajax传中文或特殊字符问题
- 让SourceTree也能Export文件
- 如何控制订单发料后不能删除组件
- Matlab 图像处理 形态学 腐蚀 膨胀 开闭运算 连通分量
- smokeping告警配置
- Android adapter设计模式三:聊天界面
- SAR ADC