对象:
一个对象是一个包含相关资料和功能的集体 ,通常由一些变量和函数组成 即对象的属性和方法;
[]括号取值的方法法:
不仅可以动态的去设置对象成员的值 还可以动态设置成员的名字(括号里的可以是变量)
使用的是关联值得名字 不是向数组一样通过索引
对象也可以叫做关联数组
对象做了字符串到值得映射
数组做了数字到值得映射
构造函数:
提供了创建你所需对象的有效方法 将对象的数据和特征函数按需联结致相应的对象
用new关键字告诉浏览器 我们想要创建一个新的对象实例
原型:
每一个对象拥有一个原型对象 对象以其原型为模板 从原型继承方法和属性
原型也可以拥有原型 并从中继承方法和属性 (原型链)
作用:解释了一个对象会拥有定义在其他对象中的属性和方法
准确的说:这些属性和方法定义在Object的构造器函数之上 而不是对象实例本身
传统的面向对象:
先定义类 此后创建的对象实例 类中定义的所有属性和方法都被复制到实例中
javascript中:
在对象实例和它的构造器之间建立一个连接(作为原型链中的一节) 以后通过
上溯原型链 在构造器中找到这些属性和方法
原型链的运作机制:
找对象上的方法的顺序:先找构造函数本身=>接着原型=>原型的原型...没有找到为止;
但是并非原型上所有的属性或方法都能被继承
继承的属性和方法都是定义在prototype之上的 ,是以Object.prototype.开头的属性和方法 并非Object.开头的属性和方法 prototype属性的值是一个对象 ,我们希望的其上面的属性和方法都被下游的对象继承
注意:prototype对象是一个内部对象 这个对象里边定义了需要被继承的成员属性或方法 访问使用__proto__