一、回顾
1、什么样的函数是构造函数?
一个函数被new了,那么这个函数就是构造函数,或者叫做构造器,或者叫做“类”。
2、能够对对象的成员进行增删改查操作
3、什么是原型对象
原型对象,它是在一个对象被创建的时候,由系统自动分配的一个对象。所有自定义的对象的默认的原型对象是Object的一个实例。
原型对象和实例对象和构造函数的关系:
4、混合方式定义对象
另外的指定原型对象的写法:
5、回调函数
就是一个函数的参数是另外一个函数,那么这个参数可以叫做回调函数。
6、apply、call、bind
他们三个都可以改变一个函数内部this的指向。改变的是哪个函数呢?哪个函数来调用apply、call、bind,改变的就是这个函数内部的this。
apply(this指向的新对象, [数组形式的其他参数,传递给调用apply的那个函数]); //会自动执行调用apply的函数
call(this指向的新对象, 其他参数,传递给调用call的那个函数); //会自动执行调用call的函数
bind(this指向的新对象, 其他参数,传递给调用bind的那个函数); //不会自动执行调用bind的函数
二、今日目标
1、理解原型链的访问规则
2、了解Object函数及Object函数的原型对象上的方法
3、能够实现JS对象的继承
4、能够明白事件处理函数中的this指向
5、能够明白构造函数中的this指向
6、能够明白定时器中的this指向
三、Object
1、介绍
Object也是JS内置的一个构造函数,它的实例通常被认为是所有其他对象的原型对象。实际上Object函数也有原型对象,这个Object的原型对象才是最顶层的一个对象。总之,根据原型链的关系,Object构造函数内提供的一些方法,以及Object函数的原型对象中的方法,都会为每个实例对象所拥有。
Obejct函数中自带的一些成员:
Object的原型对象的成员:
2、hasOwnProperty(property)
hasOwnProperty方法是Object函数的原型对象上的方法。
hasOwnProperty方法用于检测实例对象是否有非继承的属性,也就是自身有该属性。
3、create()
create()方法是Obejct构造函数内的成员方法,而且是一个静态方法(调用方式是直接使用Object来调用)。
create()方法用于创建对象,创建对象的时候,可以指定对象的原型对象。
var o = Object.create({原型对象}, {o对象的内容});
var o = Object.create({父对象}, {子对象o本身});
或者另外的写法:
4、小结