-
在<你不知道的JavaScript(上)>的第91页 写的是:
这个新对象会被执行[[Prototype]]连接
我的现在(2020/07/14)的理解是 这个新对象中会添加一个叫"__proto__"的属性 这个属性是一个地址 或者说是一个"指针" 而这个指针的值就是构建他的"类"或者说是"函数"的prototoype属性 而这个prototype是一个对象 也就是说 这个实例化对象的__proto__指针指向了构造他的"类"(虽然JavaScript没有类)的prototype属性(公共) 这个属性是所有构造于这个"类"的实例/对象的共享对象 通过__proto__来进行访问
我TM发现 这竟然是个单链表 这个单链表是一个顺序依次向头部插入的单链表 而单链表的末尾 则是"正常到不过如此"的null.. 而这个null 在C里 是NULL 这的__proto__不就是单链表里的next指针吗?!!
查看全部 -
视频里说"prototype 不是'对象的原型' 而是 属性" 也就是说 不要把对象的原型和prototype混淆了
对象的原型 在这里 比如说 就是obj3.__proto__ 只不过 obj3.__proto__是一个地址(我自己的理解) 这个地址指向函数的prototype属性 也就是说: __proto__ 是指针!
查看全部 -
prototype 是"对象属性" 这里的意思(我的理解是) prototype是一个属性 他本书是一个对象
查看全部 -
注意 第一航alert(x) // alert出的是一个function
查看全部 -
这里竟然用了VO['c'] = 10!! (视频左上角)
查看全部 -
这里讲了讲为什么函数名不能在函数自身之外使用
查看全部 -
注意这里 函数名被赋值为1以后 再打印函数名 会输出1 而如果执行函数名(这里是func()) 那么会报错(环境Node12.13)
查看全部 -
视频里的意思是 如果参数名和函数内的局部函数声明的函数名一致(重叠) 函数名会覆盖参数名 意思是变量名代表函数名而不是参数名
查看全部 -
注意这里右上角的第三条
3.变量声明(... 会忽略!!!)
然后 视频里的意思是 函数的声明 会在变量声明之前 只不过 如果在变量声明时 发生与函数声明重叠 会忽略重复的变量声明
查看全部 -
函数中的"VO" 也就是"激活对象"AO
查看全部 -
注意下方的 [[global]].String(10)
查看全部 -
VO(globalContext) === [[global]] <<==这是"全局执行上下文" 注意这里的[[global]]
查看全部 -
执行上下文对象 VO
注意里面对函数声明在对象VO中的记录(右下): <ref to function>
查看全部 -
!号在闭包中的使用
查看全部 -
for in 中 对象直接写字面量 而不是对象名(也就是对象首地址) 这么新鲜?
查看全部
举报