Javascript原型相关的函数

原创 2016年06月01日 15:38:48

一、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 函数原型

  • 2007年11月30日 09:33
  • 34KB
  • 下载

javascript中的__proto__和prototype,以及ES6中class的原型相关

简要介绍:javascript基于原型链的继承与其他语言明显不同,在一些浏览器厂商中,通过proto可以得到对象的原型,ES6中补充了Class,类似于C++和java,那么Class是如何通过原型链...
  • liwusen
  • liwusen
  • 2017年07月04日 19:56
  • 287

JavaScript中的prototype(原型)相关问题

要使用prototype,首先先明确它的含义。 参照这篇文章 http://www.cnblogs.com/yjf512/archive/2011/06/03/2071914.html ...
  • FangboC
  • FangboC
  • 2016年01月18日 12:58
  • 306

Javascript原型链的原理,JS的__proto__,prototype相关知识!

说到prototype,就不得不先说下new的过程。我们先看看这样一段代码:var Person = function () { };var p = new Person();script>很简单的一...

js实例化的对象,函数和原型的相关

对于js而言,每个实例化的对象都有以下的方法和属性: (1
  • ikscher
  • ikscher
  • 2014年11月18日 11:27
  • 8605

原型链,函数的相关属性

原型链,函数的相关属性 原型链的概念所谓原型链 就是指 从一个对象到Object.prototype之间存在一条体现继承层次关系的链式结构,这个结构被称为对象的原型链。 本质:链上的每一个对象都是通过...

Javascript面向对象(四)——函数原型

javascript函数原型 现代javascript中,我们可以通过使用__proto__设置原型,但这不总是这样。javascript从一开始就有原型继承,它是javascript语言的核心特...

深入理解javascript原型和闭包(2)——函数和对象的关系

转载自:http://www.cnblogs.com/wangfupeng1988/p/3978035.html 上文(理解javascript原型和作用域系列(1)——一切都是对象)已经提到...

javascript 类 构造函数和原型

下面是一个类的例子。 javascript: function Rectangle(w,h){         this.width=w;         this.height=h;  }   ...

javascript中组合使用构造函数模式和原型模式创建对象

首先来讲一下构造函数创建对象。ECMAScript中的构造函数可用来创建特定类型的对象。请看下面示例了解一下构造函数模式:function Person(name, age, job){ th...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Javascript原型相关的函数
举报原因:
原因补充:

(最多只允许输入30个字)