创建对象的三种方法(个人学习笔记)

            对象数据类型把描述同一个事物(同一个对象)的属性和方法放在一个内存空间中,起到了分组的作用,这样不同事物之间的属性即使属性名相同,相互也不会发生冲突。

创建对象的三种方法:

            (1)对象字面量(单例模式):

           var    obj = { }        //我们把这种分组的编写代码的模型称为“单例模式”     

           //在单例模式中把obj也叫做命名空间,单例模式一般用来模块化开发 ,管理变量,防止全局污染

            (2)调用系统的构造函数:

            var    obj = new Object();

            obj.属性名 = obj.值

            (3)自定义构造函数:

                     注意点:

                     1、自定义构造函数创建了一个自定义的类,并且创建了一个类的实例,同时这个类也是一个函数数据类型,它通过new来变成一个类,但它本身就是一个函数;所有的实例都是对象数据类型。

                      2、在类中增加的属性属于当前实例对象的私有属性,实例与实例之间是单独的个体,所以私有属性之间是不相等的。

                      3、类有普通函数的一面,当函数执行时,用var、function声明或定义的变量其实只是当前私有作用域的私有变量而已,它们与类创建的实例没有任何关系;只有this.value = key、this.function = function() { ....... }才相当与给实例增加属性和方法,才和实例有关系。

                       4、如果在构造函数中return基本类型的值,那么返回值还是this(实例);如果return引用类型,那么引用值会替换this(实例)。

            function    Person(name){

                    this.name = name;           //this指向实例对象,上个笔记点出了原因

                    this.say = function () { console.log(this.name) }

            }

            var    obj = new Person("大哈")

工厂模式创建对象:

           工厂模式就是把实现同一事件的相同代码放到一个函数中,以后如果想要实现这个功能,不需要重新编写这些代码,只需要调用这个函数就行----->“函数的封装”。以下是工厂模式和自定义构造函数创建对象:

创建对象的三种方法(个人学习笔记)_第1张图片
工厂模式和自定义构造函数创建对象

 以下是工厂模式和构造函数的区别:

创建对象的三种方法(个人学习笔记)_第2张图片
工厂模式和构造函数的区别

你可能感兴趣的:(创建对象的三种方法(个人学习笔记))