1、我们创建的每一个函数都有一个prototype属性,这个属性是一个指针,指向一个对象,而这个对象的用途是包含可以由特定类型的所有实例共享的属性和方法。
2、原型对象实际就是一个构造函数的实例对象,与普通的实例对象没有什么本质上的区别,js中每一个对象都有一个原型对象。不过他比较特殊,该对象所包含的所有属性和方法能够供构造函数的所有实例共享,这就是其他语言所说的继承,而javascript通过原型对象来实现继承,简称原型继承。静态原型继承:Object.prototype.[methodfield] ;
3、isPrototypeOf(实例对象)判断原型的方法
4、ECMA5:Object.getPrototypeOf():根据实例对象获得原型对象
5、object.hasOwnProperty(attribute)判断属性是否属于对象本身
6、in 操作符判断对象中是否存在该属性(无论是实例对象还是原型对象)
7、ECMA5新特性Object.keys();拿到当前对象里的所有keys 返回一个数组ECMA5新特性 Object.getOwnPropertyNames 枚举对象所有的属性 :不管该内部属性能否被枚举
<script type="text/javascript">
function Person(name,age){
this.name=name
this.age=age
}
var obj=Person.prototype
obj.eating=function(){
console.log(‘eating...‘)
}
obj.singing=function () {
console.log(‘singing...‘)
}
var p1=new Person(‘z3‘,23)
var p2=new Person(‘li4‘,20)
p1.eating()
p2.singing()
</script>原文地址:http://f1yinsky.blog.51cto.com/12568071/1953722