1:
JavaScript中的数据类型
number(数值类型)
string(字符串类型)
boolean(布尔类型)
null(空类型)
undefined(未定义类型)
object(对象类型)
2:对象是什么?
对象是包含相关属性和方法的集合体 属性 方法
3:什么是面向对象?
面向对象仅仅是一个概念或者编程思想 通过一种叫做原型的方式来实现面向对象编程
4:创建对象
自定义对象
基于Object对象的方式创建对象
语法:var 对象名称=new Object( );
使用字面量赋值方式创建对象
eg: var person={ name:"小明", sex:"男", age:18, hobby:"看书、看电影、健身、购物 等", showName:function(){ alert(this.name); } } person.showName();
内置对象(String(字符串)对象 Date(日期)对象 Array(数组)对象 …)
常见的内置对象 :String(字符串)对象 Date(日期)对象 Array(数组)对象 Boolean(逻辑)对象 Math(算数)对象 RegExp对象
5:构造函数:
创建特定类型的对象,this变量,new操作符
6:使用构造函数创建新实例
调用构造函数的4个步骤 :
创建一个新对象
将构造函数的作用域赋给新对象(this)
执行构造函数中的代码
返回新对象
7:constructor属性
constructor属性指向Person
eg: alert(person1.constructor==Person);
8:instanceof操作符
使用instanceof操作符检测对象类型
eg: alert(person1 instanceof Object);
9:原型对象:
eg:
function Person (){ }
Person.prototype.name="小明";
var person1=new Person();
10:每个函数都有一个prototype属性,它是一个指针,指向一个对象 prototype是构造函数所创建对象的原型对象
11:原型链:
一个原型对象是另一个原型对象的实例 相关的原型对象层层递进,就构成了实例与原型的链条,就是原型链
调用man1.getFoot( ) 经历的三个步骤 搜索实例 搜索Man.prototype 搜索Humans.prototype
12:对象继承:
eg:
function Humans(){
this.clothing=["trousers","dress","jacket"];
}
function Man(){ } //继承了Humans
Man.prototype=new Humans();
var man1=new Man();
man1.clothing.push("coat");
alert(man1.clothing);
var man2=new Man();
alert(man2.clothing);
13:借用构造函数
apply:应用某一对象的一个方法,用另一个对象替换当前对象
语法:
apply([thisObj [,argArray]])
call:调用一个对象的一个方法,以另一个对象替换当前对象
语法:
call([thisObj[,arg1[,arg2[, [,argN]]]]])
14:组合继承
也叫做伪经典继承 将原型链和借用构造函数的技术组合到一块,发挥二者之长的一种继承模式 使用原型链实现对原型属性和方法的继承,而通过借用构造函数来实现对实例属性的继承