这种写法不是对象克隆,就是把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()获得的属性都是公有的在原型上。
继承