美文网首页码路拾遗程序员js创建对象
JS中创建对象的几种常用方法

JS中创建对象的几种常用方法

作者: ifcode | 来源:发表于2014-06-23 06:58 被阅读5417次

    JS的语法非常灵活,简单的对象创建就有好几种不同的方法。这些过于灵活的地方有时候确实很让人迷惑,那么今天我们就来梳理一下JS中常用的创建对象的几种方法吧。

    1. 简单对象字面量

    这是最简单的创建对象的方法,也是经常在入门书籍中看到的方法:

    //创建一个简单对象字面量
    var person = {};    
    
    // 加入属性和方法
    person.name = 'ifcode';
    person.setName = function(theName) {
       person.name = theName;
    }
    

    非常简单,但一般情况下不推荐这种方法。JS good parts书中认为这种写法可读性不够强,作者推荐的是后面一种写法。

    2. 嵌套对象字面量

    JS good parts中推荐这种写法:

    var person = {
        name: 'ifcode',
        setName: function(theName) {
            this.name = theName;
        }
    }
    

    这种写法可读性很强,person对象的所有属性和方法都包含在其身体内,先的一目了然。

    以上两种写法适用于只存在一个实例的对象,也就是某种意义上的singlton pattern

    下面介绍的几种方法比较适用于创建多个对象实例。

    3. 简单构造函数

    构造函数一般都符合factory pattern,根据默认的规则,构造函数应当首字母大写:

    Person = function(defaultName) {
        this.name = defaultName;
        this.setName = function(theName) {
            this.name = theName;
        }
    }
    
    person = new Person('ifcode');
    

    利用构造函数就可以方便地创建多个对象实例了。

    4. 使用原型(prototype)的构造函数

    这里简单回顾一下prototype的作用。prototype或许是某种意义上最接近传统OOP中class的东西了。所有创建在prototype上得属性和方法,都将被所有对象实例分享。

    Person = function(defaultName) {
        this.name = defaultName;
    }
    
    Person.prototype.setName = function(theName) {
        this.name = theName;
    }
    

    其实创建对象的方法还有很多,这些过于灵活的方法也是许多人在初接触JS时感到困惑的原因。我个人比较偏向2和4:单一实例用2,多个实例用4。

    相关文章

      网友评论

      本文标题:JS中创建对象的几种常用方法

      本文链接:https://www.haomeiwen.com/subject/crrjtttx.html