*JavaScript是基于原型的面向对象语言,每个对象都有一个原型。
*原型是递归的——对象的原型是对象;原型的对象是原型。
1.原理
对象定义(定义类)——>prototype(类模板)——>对象实例(对象)——
2.创建对象的方式
2.1:工厂方式——在一个方法中(new一个Object对象,再添加对象的属性和方法);通过方法产生对象
2.2: 构造方法方式——在一个类中设置属性和方法;再通过new类来产生对象。
2.3: 原型方式——定义一个空类,用类的prototype来设置属性和方法;通过new类来产生对象。
*改进型代码:
function Person(name){
this.name=name;
if(typeof Person.xxx=="undefined"){
Person.prototype.say=function(){
alert("唯一创建");
};
Person.xxx=true;
}
}
2.4: 构造+原型方式创建对象——构造的部分设置私有的属性和方法,原型部分设置共用的属性和方法;用new产生对象。
2.5:JSON格式——
3.继承
3.1:对象冒充——冒充——>继承——>删除冒充——>添加新属性和方法
3.2:call()方式——父类.call(this(对象),参数列表)——>添加新属性和方法
3.3:apply()方式——父类apply(this,参数数组)——>添加新属性和方法
3.4:原型链——定义对象——>对象调用prototype添加新属性和方法
4.其它
4.1:对象的创建——使用new运算符或构造函数创建
4.2:对象销毁与垃圾回收——自动回收垃圾;将不用属性设值为null会加快回收时间。
4.3:动态添加属性和方法
*delete关键字只用于删除对象的属性、数组的元素。
4.4:new
4.5:with语句——代码块引用,
4.6:for…in语句——遍历一个对象的所有属性和函数。