您的位置:首页 > Web前端 > JavaScript

什么是js面向对象,特点,怎么写构造函数

2017-06-27 20:32 267 查看

什么是JS面向对象

首先,什么是对象,简单的来理解,对象是指一个整体,对外提供一些操作,比如空调,电视机等等;面向对象的意思就是,使用对象的时候,你可以直接使用它所提供的功能而忽略其内部组成情况。好比如你不知道电视机是怎么运作的,也不知道它是由什么零件组成的,但你知道拿到遥控就可以操作电视机,这就是一种面向对象的思想。

js中面向对象的特点:

抽象、封装、继承、多态。

抽象:表示对问题领域进行分析、设计中得出的抽象的概念,抓住核心问题。

封装:封装是实现面向对象程序设计的第一步,封装就是将数据或函数等集合在一个个的单元中(我们称之为类)。被封装的对象通常被称为抽象数据类型。

继承:继承主要实现重用代码,节省开发时间。包括对象方法和属性的继承。

多态:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。在运行时,可以通过指向基类的指针,来调用实现派生类中的方法。

怎样写构造函数

1.什么是构造函数

构造函数就是构造对象的函数。使自己的对象多次复制,当对象被实例化后,构造函数会立即执行它所包含的任何代码。

2.工厂模式

该模式抽象了创建对象的具体过程,用函数来以特定接口创建对象的细节

例如:

<script>
function createPerson(name, qq)
{
//原料
var obj=new Object();
//加工
obj.name=name;
obj.qq=qq;
obj.showName=function ()
{
alert('我的名字叫:'+this.name);
};
obj.showQQ=function ()
{
alert('我的QQ号:'+this.qq);
};
//出厂
return obj;
}
var obj=createPerson('blue', '258248832');
obj.showName();
obj.showQQ();
var obj2=createPerson('张三', '45648979879');
obj2.showName();
obj2.showQQ();
</script>


工厂方式的问题:使用工厂模式能够创建一个包含所有信息的对象,可以无数次的调用的这个函数。虽然其解决了创建多个相似对象的问题,但却没有解决对象识别的问题(即如何得知一个对象的类型)

3.构造函数模式

function Person(name,sex,age) {//注意这里 构造函数首字母大写
this.name = name;
this.sex = sex;
this.age = age;
this.info = function () {
console.log(this.name, this.age, this.sex);
}
}
var p1 = new Person('帅哥','男','20');
p1.info();
var p2 = new Person('美女','女','18');
p2.info();


注意构造函数与工厂模式有些不同的地方,如下:

构造函数首字母大写,没有显式地创建对象,将属性和方法赋值给了 this 对象,没有return语句

而且以这种方式来调用构造函数会大致经历以下几个步骤:

1)创建一个新的对象

2)将构造函数的作用域赋值给这个对象(因此this就指向了这个对象)

3)执行构造函数中的代码(即给新对象添加属性和方法的过程)

4)返回对象
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐