1.4

  1. 克隆对象

这种写法不是对象克隆,就是把obj的内存地址赋值给obj2.程序员

经过for in克隆  无论是公有的仍是私有的都克隆成私有的es6

 

Js提供了一个一个克隆的方法 Object.create()数组

Var obj2=Object.create(obj)  将obj的全部属性克隆到obj2的原型上浏览器

 

  1. 对象的继承

1.原型继承:将父类的实例赋值给子类的原型ecmascript

 这就是原型继承 将父类的私有和公有都继承在子类的原型上,成为子类的公有属性。函数

2.call继承   将父类私有的继承为子类私有的学习

 

3.冒充对象继承 将父类私有的和公有的都继承为子类私有的prototype

 

4.混合继承 私有的继承为私有的,公有的和私有的再次继承为公有的对象

混合继承是call和原型继承的结合 私有的被继承了两次继承

 

  1. 组合继承 私有的继承为私有的 公有的继承为公有的

 

  1. 中间类继承

 

arguments 不是一个数组,没有array的那些自带的方法,如今咱们想arguments有array的那些方法,将arguments的原型执行Array内置类的原型。

  1. 笔记三遍
  2. 查面向对象

面向对象复习

面向对象的三大特色:封装 继承 多态/重载

封装:减小代码冗余,提升代码的重复使用率。

继承:子类继承父类的属性。

多态:

如今学习的js是EcmaScript2014(ES5) 生成类靠构造函数,ecmascript2015(es6)用class生成类。

constructor 构造器

  1. 浏览器给每一个类(函数)天生赋予一个prototype的属性,这个属性是一个对象,里面有个constructor的属性,叫构造器,指向当前的类自己

 

  1. 人为改变类的原型指向(给prototype赋值引用数据类型,基本数据类型不改变),浏览器赋予的constructor属性就不存在了能够人为添加。若是是简单的基本数据类型constructor还存在。
  2. 类在代码中扮演着三种角色,普通函数,普通对象,类
  3. 每一个对象天生有一个__proto__的属性,叫原型,他指向父类的原型,obj.__proto__==Person.prototype  true

5.prototype和__proto__都叫原型,前者是函数的属性,后者是对象的属性,前者给程序员使用后者是浏览器用于查找原型的。

This指向

 

对象继承

  1. 克隆对象不是将一个对象赋值给另外一个对象,var obj1=obj2这不是对象克隆,是把obj2的引用地址赋值给obj1.
  2. 经过for in 和Object.create()克隆对象

For in克隆的属性都是私有的,create()获得的属性都是公有的在原型上。

继承

相关文章
相关标签/搜索