美文网首页
HTML5开发爱心鱼游戏系列第一部分、js深入浅出(第四章)

HTML5开发爱心鱼游戏系列第一部分、js深入浅出(第四章)

作者: 留白_汉服vs插画 | 来源:发表于2017-12-06 17:59 被阅读16次

    重点在于“无序”,字符串

    对象属性的key必须是字符串(不是字符串,就会转化成字符串)

    不管是用字符串1,还是数字1,访问的都是同一个属性。这里1是键值。数字1转化成字符串1,所以两次赋值,访问的是同一个。

    相同的,不管是不是空对象,对象作为key,也会被转化成字符串,{}被转化成字符串。所以{},{x:1} 都转化成了相同的字符串,两次都指向同一个属性。

    对象的结构。

    for in 读取原型属性的时候,有可能会把原型中属性也给读了,注意一下。

    有的属性不可以删除的。看一下prototype的configurable其实为false。

    var定义的全局变量或者局部变量,不能被删除的。左边上全局,下局部。

    函数声明也是这样的,不管事全局还是局部,都不能删除函数。

    有一个坑,eval()定义的函数,里面的变量是可以被删除掉的。

    in查找是不是有该属性, 但是会查找到原型上。

    查看属性是否可枚举,用propertyIsEnumerable方法。

    所以我们输出一个对象的时候,都是这个对象自己的属性,因为原型链上的属性大多都是不可枚举的。不会显示出来。

    自定义枚举的属性,使用defineProperty方法。其实如果不写enumerable,默认也是false的。但是注意,如果是用new ,字面量,object.create 创建的属性,默认其实都是true的。

    相关文章

      网友评论

          本文标题:HTML5开发爱心鱼游戏系列第一部分、js深入浅出(第四章)

          本文链接:https://www.haomeiwen.com/subject/mfllixtx.html