面向对象
1. 对象分类
内置对象:类如数组对象(Array),日期(Date),函数(function),Math对象,正则表达式(RegExp对象)
宿主对象:浏览器对象,window,document
自定义对象
2. 原始数据类型和对象类型
原始数据类型:在内存中,存放在栈中的简单数据段,它们直接存储在变量访问的位置。按照值来操作。
对象数据类型:在内存中,存放在堆中的对象,存储在变量处的值是一个指针,指向存储对象的内存处。按照地址来操作。
var num =1;
var num1 =num;
var obj1 = {a:1}
var obj2 = obj1
3. 创建对象的几种方式
- new 创建
var obj= new Object() - 字面量创建
var obj = {} - 工厂模式
function Obj(num,age,username){
var obj = new Object();
obj.number = num;
obj.age = age;
obj.username = username;
return obj;
}
- 构造函数
function Obj(num,age,username){
this.number = num;
this.age = age;
this.username = username;
}
//prototype 是原型模式
Obj.prototype.say = function(){
console.log(this.name)
}
- 继承
function Obj(num,age,username,add){
this.number = num;
this.age = age;
this.username = username;
this.address = add;
}
//子类
function Pastern(){
this.pastern = '软件系';
//构造函数继承
Obj.apply(this,arguments)
}
//原型链继承
Pastern.prototype = new Obj()
//constructor指向 Pastern
Pastern.prototype.constructor = Pastern