一、JavaScript中的基本数据类型
number(数值类型)
string(字符串类型)
boolean(布尔类型)
null(空类型)
undefined(未定义类型)
object:一种复杂的数据类型,该类型实例化的对象是一组数据和功能的集合
二、创建对象
对象分为两种:
自定义对象
内置对象
1、自定义对象
创建自定义对象的最简单的方式就是使用操作符new创建一个Object的实例,然后通过“.”为其添加属性和方法
语法:
var 对象名称=new Object();
2、内置对象
String(字符串)对象
Date(日期)对象
Array(数组)对象
Boolean(逻辑)对象
Math(算数)对象
RegExp对象
三、构造函数和原型对象
构造函数可用来创建特定类型的对象,所谓的构造函数就是一个普通函数,但是内部使用了this变量,对构造函数使用new操作符,
就能生存实例,并且this变量会绑定在实例对象上,从而定义自定义对象类型的属性和方法。
注:对象的constructor属性最初是用来标识对象类型的,但是检查对象类型,还是instanceof操作符要更可靠
四、调用构函数的4个步骤
1、创建一个新对象
2、将构造函数的作用域赋给新对象(this就指向了这个新对象)
3、执行构造函数中的代码
4、返回新对象
五、原型对象
在JavaScript中创建的每个函数都有一个prototype对属性,这个属性是一个指针,
指向一个对象而这个对象的用途是包含可以由特定类型的所有实例共享的属性和方法。
使用原型对象的好处:
可以让所有对象实例共享它所有的属性和方法,也就是说不必在构造函数中定义对象实例的信息,
可以将这些信息直接添加到原型对象中。
六、原型链
一个原型对象是另一个原型对象的实例
相关的原型对象层层递进,就构成了实例与原型的链条,就是原型链
七、调用man1.getFoot( ) 经历的三个步骤
搜索实例
搜索Man.prototype
搜索Humans.prototype
八、对象继承
1、借用构造函数
在子类构造函数的内部通过apply()或call()方法调用父类型的构造函数,也可以在将来新创建的对象上执行构造函数。
语法:
apply([thisOjb[,argArray]])
应用某一对象的一个方法,用另一个对象替换当前对象
接收两个参数,一个是函数运用的作用域(this),另一个参数是数组
call([thisObj[,arg1[,arg2[, [,argN]]]]])
调用一个对象的一个方法,以另一个对象替换当前对象
第一个参数是函数运用的作用域(this),第二个是传递的参数,必须一一列举出来
2、组合继承
组合继承:有时也叫做伪经典继承
将原型链和借用构造函数的技术组合到一块,发挥二者之长的一种继承模式
使用原型链实现对原型属性和方法的继承,而通过借用构造函数来实现对实例属性的继承