1、ECMAScript 有两种开发模式:1.函数式(过程化),2.面向对象(OOP)。面向对象的语言有一个标志,那就是类的概念,而通过类可以创建任意多个具有相同属性和方法的对象。
2、面向对象特点:
抽象:抓住核心内容
封装:只能通过对象来访问方法
继承 :从已有对象上
多态:
3、对象的组成:
方法:对象下面的函数叫做对象的方法
属性:对象下面的变量
var obj = new Object();
obj.name = '小明';
obj.showName=function(){
alert(obj.name);
}
想创建多个类似的对象,就会产生大量的代码。为了解决多个类似对象声明的问题,我们可以使用一种叫做工厂模式的方法,这种方法就是为了解决实例化对象产生大量重复的问题。
工厂方式: 相当于封装函数,在函数内部对代码进行加工,因此称作工厂方式
例1:
functon createPerson(name){
// 1、原料
var obj = new Object();
// 2、加工
obj.name = name;
obj.showName = function(){
alert( this.name );
}
// 3、出场
return obj; //为了让外部能调用创建的obj对象 因此返回obj
}
注解:
当new去调用一个函数:这个时候函数中的this就是指创建出来的函数,而且函数的返回值直接就是
this( 隐式返回 )
注:正常的函数没有返回则会返回undefined,且正常的函数中this一般指代window
则例1中的代码可改写为:
function createPerson(name){
this.name = name;
this.showName = function(){
alert( this.name );
}
}
var p1 = new createPerson('小明');
p1.showName();
new后面调用的函数:叫做构造函数
网友评论