1. 程式人生 > >javascript-prototype

javascript-prototype

javascript prototype

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>


javascript-prototype