這種寫法不是對象克隆,就是把obj的內存地址賦值給obj2.程序員
經過for in克隆 無論是公有的仍是私有的都克隆成私有的es6
Js提供了一個一個克隆的方法 Object.create()數組
Var obj2=Object.create(obj) 將obj的全部屬性克隆到obj2的原型上瀏覽器
1.原型繼承:將父類的實例賦值給子類的原型ecmascript
這就是原型繼承 將父類的私有和公有都繼承在子類的原型上,成爲子類的公有屬性。函數
2.call繼承 將父類私有的繼承爲子類私有的學習
3.冒充對象繼承 將父類私有的和公有的都繼承爲子類私有的prototype
4.混合繼承 私有的繼承爲私有的,公有的和私有的再次繼承爲公有的對象
混合繼承是call和原型繼承的結合 私有的被繼承了兩次繼承
arguments 不是一個數組,沒有array的那些自帶的方法,如今咱們想arguments有array的那些方法,將arguments的原型執行Array內置類的原型。
面向對象複習
面向對象的三大特色:封裝 繼承 多態/重載
封裝:減小代碼冗餘,提升代碼的重複使用率。
繼承:子類繼承父類的屬性。
多態:
如今學習的js是EcmaScript2014(ES5) 生成類靠構造函數,ecmascript2015(es6)用class生成類。
constructor 構造器
5.prototype和__proto__都叫原型,前者是函數的屬性,後者是對象的屬性,前者給程序員使用後者是瀏覽器用於查找原型的。
This指向
對象繼承
For in克隆的屬性都是私有的,create()獲得的屬性都是公有的在原型上。
繼承