为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我把obj1[atr] > obj2[atr] 改 成 obj1.atr > obj2.atr后就无法比较大小了;

为什么我把obj1[atr] > obj2[atr] 改 成 obj1.atr > obj2.atr后就无法比较大小了;

赵日天l 2016-08-17 00:08:06
 <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的关键字和保留字作为属性名。点运算符不能。

查看完整回答
反对 回复 2016-08-17
  • 1 回答
  • 0 关注
  • 1236 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信