首页  >  问答  >  正文

javascript - true作为对象属性在IE和chrome结果不一样

<script type="text/javascript">
    var test = {
        true: 'success'
    }
    console.log(test.true)
</script>

同样的代码,在chrome和IE下运行的结果都不一样:

开始我以为true属性Boolean对象,因为:

var a=true;
console.log(a.constructor==Boolean);    //true

但是我试着修改Boolean原型上的true属性失败,而且用hasOwnProperty和in判断也为false。

为什么IE不支持用true关键字作为对象属性,而chrome可以?
怎样才能让IE也可以用这种写法?
[注]:我是在看一个源码文件,下面大量使用了test.true,我想在【定义test这个对象之前】作出修改保证在IE下能用test.true运行成功。

黄舟黄舟2771 天前389

全部回复(5)我来回复

  • PHPz

    PHPz2017-04-11 10:12:56

    为什么我的IE可以。。。

    在html中:

    在js中

    回复
    0
  • 阿神

    阿神2017-04-11 10:12:56

    这样写不就可以了吗?

    回复
    0
  • 大家讲道理

    大家讲道理2017-04-11 10:12:56

    ie就是垃圾,可以考虑不支持。

    但是你这么写代码确实不好,怎么可以把关键字定义成你的属性呢。。。这么干别人直接就认为你很业余了。

    回复
    0
  • 迷茫

    迷茫2017-04-11 10:12:56

    二楼正解,关键字最好不要作为你的属性值,要不以后的bug很难找到

    回复
    0
  • PHPz

    PHPz2017-04-11 10:12:56

    是我的IE调试【文档模式】没选对,应该这样选才不会报错。

    回复
    0
  • 取消回复