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); } } } } });