你就是上帝,JS中的对象构造函数解析

2018-07-21  本文已影响9人  本杰明蚂蚁

什么是对象?

对象就是能够形象化描述的东西,例如:一个杯子,一条狗,一匹马,一辆车

实例化就是准确的描述:一个红色的杯子,一个蓝色的杯子,红色和蓝色就是特有的,杯子就是对象,是公有的;

这些东西就是上帝创建的对象,那么我们在编程中能够创造对象就好比拥有了上帝的能力。

在JS中创建一个‘亚当’对象:

var person = {

name:‘亚当’,sex:'男'

}

上帝创造了亚当,夏娃,但是并不是都创建每一个人,我们每个人都有自己的名字,相貌,性别,年龄,爱好等等这些就是对象实例化;但是我们都必须像亚当一样,有手,有脚,眼镜,鼻子,嘴巴。那么就很清楚了,我们是上帝,在JS中创建了’亚当‘对象,实例化一个对象就是造人的过程。当然不是现实生活中造人了,哈哈

能从一个‘亚当’对象中实例化无限的独特的凡人就是面向对象编程;

如何实例化?

在JS中 用 new 关键字来实例化。

下面是构造函数创建对象:

function Person(name,sex,age){

    this.name = name;

    this.sex=sex;

    this.age=age

}

那么构造函数为什么叫构造函数?

那是因为构造函数赋予了我们向上帝一样的能力,能够构建一个亚当模型,剩下的凡人就可以通过new轻松创建了;

在没有构造函数之前 有工厂模式生成对象,那不是真正的面向对象编程,只是重复的创建对象;

只有使用构造函数才能让我们变成上帝。

造人过程:   var people1 =  new Person('麻花疼',‘男’,‘47’);

                        var people2 = new Person('麻云',‘男’,‘53’);

                        console.log(pepole1 instanceof Person);//true

// instanceof 就是判断这个实例所属于哪个对象;

就是这么简单,创出了独特的人类。

在new的过程中,这个构造函数内部发生了什么呢:

1、创建一个新的对象,这个对象的类型是object。

2、往对象添加属性。

3、return出这个新对象。

构造函数还是有缺陷的,比如一个people1和people2都有共同的方法

sayName:function(){

console.log(this.name);

}

这么每一个实例都有了sayName方法;那怎么办,我们可以把方法提出来给原型(prototype),把特有的属性留给构造函数。

这就是完整的构造函数,完整的造人过程。

上一篇 下一篇

猜你喜欢

热点阅读