this指向(指明)当前对象
你在注释里问的“ 这里缺少了this 为什么不识别 books ?”
它当然不识别books,因为books是归属于Collect对象(当前对象)的,你不能跨过对象去访问对象的方法或属性(有越轨之嫌,呵呵),只能通过对象本身去访问对象的方法或属性(公开的),所以要带this以指明是访问自身对象的books属性,否则,如果上下文中也没有定义过的话,books就是一个“孤魂野鬼”,无从索引,结果就是一个未定义的对象
this在js中在不同的地方代表不同的含义,也就是作用域不同eg你上面的this代表你这个h1o如果放到最外面,这个this就代表整个window