<script> function p(name,age){ this.name = name; this.age = age; } var p1 = new p('e',22); var p2 = new p('s',21); var p3 = new p('b',33); var ps = [p1,p2,p3]; function bbb(atr){ function ddd(obj1,obj2){ if(obj1[atr]>obj2[atr]){ return 1; }else if(obj1[atr] ==obj2[atr]){ return 0; }else{ return -1; } } return ddd; } ps.sort(bbb('name')); function show(){ var h = document.getElementById('h'); for(var i in ps){ h.innerHTML += ps[i].name+'***'+ps[i].age+"<br>"; } } show(); </script>为什么我把obj1[atr] > obj2[atr] 改 成 obj1.atr > obj2.atr后就无法比较大小了;
1 回答
已采纳
stone310
TA贡献361条经验 获得超191个赞
中括号运算符总是能代替点运算符。但点运算符却不一定能全部代替中括号运算符。
中括号运算符可以用字符串变量的内容作为属性名。点运算符不能。
中括号运算符可以用纯数字为属性名。点运算符不能。
中括号运算符可以用js的关键字和保留字作为属性名。点运算符不能。
添加回答
举报
0/150
提交
取消