JS对象字面量

1.What

JS对象字面量在平时工作中用的不多,但至少接触过,膜拜大神的JS代码,用对象字面量的居多,惭愧,今天才知道这种写法的名称。

对象字面量就是创建对象的一种简单容易阅读的方法。如下创建了一个对象。

var obj = {
    a:'aaa',//a是属性,'aaa'是属性值
    b:'bbb',
    c:'ccc'
}
obj.a//"aaa"

obj['a']//"aaa"

2.Why

所谓存在即合理。为何有这种写法的存在呢,百度了一圈,对这种写法褒贬不一。

大致的优点为以下几点:

  • 初始化对象速度快
  • 属性共享(不明觉厉)

3.How

对象字面值是封闭在花括号对({})中的一个对象的零个或多个"属性名-值"对的(元素)列表。你不能在一条语句的开头就使用对象字面值,这将导致错误或产生超出预料的行为, 因为此时左花括号({)会被认为是一个语句块的起始符号。

function RelatedSelect(config) {

    this.defaultText = null;
    this.defaultTextList = [];
    this.firstParentCode = '';
    this.url = null;
    this.resultProperty = null;
    this.data = null;
    this.isPreAppend = false;
    this.renderId = null;
    this.nameList = [];
    this.preLabel = [];
    this.sufLabel = [];
    this.listeners = {
        onRender : null,
        onChange : null,
    }
}
rsPopulation = new RelatedSelect(
    {
                                                            
        defaultText : defaultText,
                                                            
        firstParentCode : '',
                                                    
        data : result.list,
                                                
        listeners : {
            onRender : function(select) {
                var selectSize = select.idList.length;
                for(var i=0; i<selectSize; i++){
                    var curSelect = $('#'
                        + (select.idList)[i]
                        + ' option[value!=""]');
                    if(curSelect!=null && curSelect.length == 1){
                        $('#'
                            + (select.idList)[i]
                            + ' option[value!=""]')[0].selected = true;
                            select.onChange(select.getByIndex(i),i);
                    }
            }
        }
    }
});
原文地址:https://www.cnblogs.com/zyxiaohuihui/p/8387401.html