JS第一类Object是惟一一类繁杂类别,它是失序的统计数据子集,也是数组对子集。
新闻稿:
第一类的新闻稿形式有三种,如下表所示:
前者是单纯的读法,前者是通常透过缺省建立的读法。那时通常用前者,即使较为方便快捷,但前者也须要晓得。须要特别注意的技术细节有呵呵以下几点:
1、键Avold数组,并非URL,能包涵任一字符串。
2、标点符号能略去,略去后就根本无法写URL。
3、即使标点符号略去了,键名也却是数组,这一点儿很关键,须要谨记。
每两个键,叫作第一类的特性名,每两个键相关联的值,叫作第一类的特性值。
透过Object.keys(obj),能获得obj的大部份key。
表达式能做特性名,比如:
特别注意:
未加[]的特性二百六十名手动变为数组。
加了[]则会当作表达式解释器。
值假如并非数组,则会手动变为数组。
第一类的暗藏特性:
1、JS中每两个第一类都有两个暗藏特性。
2、那个暗藏特性存储着共计特性共同组成的第一类的门牌号。
3、那个共计特性共同组成的第一类叫作原型。
4、暗藏特性存储着原型的门牌号。
增删改查:
一、删特性:
delete http://obj.xxx或者delete obj[“xxx”],此特性删的是特性名和特性值,假如使用obj[“xxx”]=undefined那个方法,只是删除特性值,特性名还是存在的,所以通常不推荐那个删除方法。
当删除特性以后,须要判断该第一类是否含有该特性,能用以下方法判断:
xxx in obj===false–不含特性名
xxx in obj && obj.xxx===undefined—含有特性名,但值为undefined
特别注意obj.xxx===undefined不能判断xxx是否为obj的特性。
二、查特性(读特性):
Object.keys(obj)–查看自身大部份特性。
console.dir(obj)\或者一次用Object.keys打印出obj._proto__
–查看自身+共计特性
obj.hasOwnProperty(toString)–判断一个特性是自身的却是共计的。
原型:(每个第一类都有原型)
1、原型里存着第一类的共计特性。
2、比如obj的原型就是两个第一类。
3、obj._proto_存着那个第一类的门牌号。
4、那个第一类里有toString/constructor/valueOf等特性。
特别注意:第一类的原型也是第一类
1、所以第一类的原型也有原型。
2、obj={}的原型即为大部份第一类的原型。(普通第一类,最基础的第一类)
3、那个原型也包涵大部份第一类的共计特性,是第一类的根。
4、那个原型也有原型,是null。
特别注意查看特性的时候,有三种方法:
1、obj[key]
2、obj.key
,所以这种方法须要特别注意,不要写错了,通常特性名都是数组。
三、修改或增加特性(写特性)
1、直接赋值:
2、批量赋值:
特别注意,我们无法透过自身修改或增加共计属性,比如:
假如确实须要修改或增加原型上的特性,那就根本无法使用如下表所示方法:
最后,特别注意一点儿,name in obj和obj.hasOwnProperty(name)是不同的,两者的区别是:
前者是判断两个特性是自身的却是共计的,而前者,则是判断那个第一类是否含有那个特性,但,你并不晓得,它是属于自身的却是共计的。所以,这里须要特别注意区分这两者的区别。