从今天开始我们就进入面向对象的学习,面向对象其实是最贴合实际的一种编程思想,但也是所有编程语言中最为抽象的一部分。
我们先简单说一下何为面向对象。
面向对象是一种编程思想,它并非语法规定,只是一种思路,与其对应的是面向过程。
所以,为了能让大家了解面向对象编程的优点,我们需要先从面向过程说起。
何为面向过程呢?
比如:我们要造10辆汽车,如果是用面向过程的思想来做,那就是马上进入造汽车的环节,需要轮胎就造个轮胎,需要玻璃就造块玻璃,所以,造10辆汽车就要重复造10次轮胎,10次玻璃,10次...。
如果是用面向对象的思想来做,我们先不造汽车,先来造轮胎和玻璃,造轮胎和玻璃之前,我们先造轮胎和玻璃的生产线,这个生产线在编程语言中被统称为类,在js中称为构造函数。一旦有了生产线,那么分分钟就能生产出一个轮胎一块玻璃,轮胎和玻璃等具体的事物在编程语言中被称为对象。
当构建好配件的生产线后我们才开始造汽车,需要轮胎和玻璃时就从生产线上拿一个过来,所以分分钟能造出一辆汽车。
通过以上的描述,大家应该可以理解到,如果仅仅是小规模的生产,面向过程的最终效率要高一些。但如果是要规模化生产,面向对象对象的效率更高。
既然说要面向对象,我们首先就要知道如何创建一个对象出来。
创建对象总的来说有两种方式
- 1、字面量方式。等同于面向过程的造轮子过程。
- 2、构造函数方式。等同于搭建生产轮子的生产线。
复制代码
我们先看字面量对象的定义方法
<!DOCTYPE html>
<html>
<head>
<title>面向对象(一) 对象的创建 字面量方式创建对象</title>
</head>
<body>
<script type="text/javascript">
var person = {
"name":"tom",
"age":"20",
"say":function(){
console.log('tomsay');
}
};
var person1 = {
"name":"berry",
"age":"30",
"say":function(){
console.log('berrysay');
}
};
</script>
</body>
</html>
以上我们通过字面量的方式定义了两个对象person和person1。
下面再看通过构造函数的方式创建对象
<!DOCTYPE html>
<html>
<head>
<title>面向对象(一) 对象的创建 构造函数方式创建对象</title>
</head>
<body>
<script type="text/javascript">
//构造函数 即:被new实例化了的普通函数
function Person(n, a){
//new实例化过程分析:
//1.首先创建一个空对象 var obj = {};
//2. 将创建的对象,赋给this关键字 this = obj;
//3. 将一些属性方法,通过this设置到对象上
//我们只需要直接在构造函数中,使用this 设置成员即可
this.name = n;
this.age = a;
this.say = function(){
console.log('我叫' + this.name);
}
//4. 自动将新对象 返回 return this;
}
var person = new Person('tom', 30);
var person1 = new Person('berry', 30);
console.log(person);
console.log(person1);
// 构造函数特点:函数名称通常首字母大写,不需要写return返回值,使用this设置成员
// 构造函数 相当于类的概念;
// 实例化构造函数,得到这个类下的具体的对象
</script>
</body>
</html>
既然是讲面向对象,自然是使用构造函数的方法创建对象更为重要,因为以后我们都是通过构造函数来创建对象的。
以上就是关于字面量创建对象与构造函数创建对象的语法,本节就先讲到这里,下一篇再继续。
|