
卖烧烤夫斯基
从浏览器原理和实践到v8原理,每一篇文字都要反复看,谢谢,学到很多。非常希望再出专栏。
2020-08-11
1

西门吹雪
感谢很有收获
作者回复::)
2020-06-13

M施
我发现一个人的能力强,但他讲的不一定好,能让学生听的懂、看的懂也是一门学问。
之前看了许多博客或者公众号文章大多数讲的不是很好。有些知识点写的有点晦涩又不到位。
李兵老师就是那种能力强,讲的也很好的那种!!!
受益良多。我是您的小粉丝,答应我,李老师要多多出专栏哦!
2020-05-16
60
chris
老师写的很精彩,看起来一点不累
2020-04-27

一飞同学
从 V8 编译的角度理解变量提升,豁然开朗,比之前的理解清晰多了。
作者回复:赞
2020-04-09
2

sugar
这篇太棒了,终于有这样的手把手带着调试v8的课节了…真的希望这个系列课程中能多加餐一些面向v8底层 c++调试的一些内容,市面上这类资料良莠不齐 且很多资料时效性已经非常差了不具有参考性。几年前,那时我第一次编译chromium,一台顶配的macbookpro生生跑了一下午,然后要是想自己试着改一些地方的代码 反复编译出来看效果就更费劲了。当时一直苦于没人带走了很多弯路,如今看到老师您的这篇专栏喜出望外,真的很希望能多聊些深入的东西,照顾一下各个阶段的学员哈
作者回复:chromium是个庞然大物,下载代码和配置工程和编译代码都是非常费时费力的,调试也是非常麻烦,各种跳转,各种跨进程通信
2020-04-02
18

杨越
图解v8、浏览器原理、罗剑锋老师的HTTP三个专栏就是面试神器和学习神器
作者回复:嘿嘿,的确是
2020-03-31
12

nulife
源码易懂,赞👍
作者回复:嘿嘿
2020-03-29

sheeeeep
初学js的时候,就被原型链的一整套东西弄晕过,直到现在都没有一个清晰的认知,老师这篇文章拨云见日。
2020-03-28

mfist
DogFactory.prototype 是Dog工厂函数实例对象的原型链(```dog = new DogFactory()```),dog实例上面没有属性或方法会去原型链上面寻找。
DogFactory.__proto__ 是函数对象的原型链 ,```function DogFactory(){} ``` 另外一种类似实现是 ```DogFactory = new Function([arg1, arg2] functionBody)``` 所以它应该指向Function.prototype。引用MDN一句话: Function对象继承自Function.prototype属性,它是不能被修改的。``` Function.prototype.toString() 得到 "function () { [native code] }"```
所以两者是有本质区别的。要说有啥关联性的话,就是```DogFactory.prototype.constructor ===DogFactory // true``` DogFactory.prototype上面构造函数就是 DogFactory
今日总结
1. 普通对象上面有一个隐藏的__proto__对象,指向自己的原型。当在对象上面访问属性的时候会先在当前对象寻找,如果找不到再去原型链上面寻找。
2. javascript为了蹭到当时java的热度和迎合java程序员,起名为javascript,和模仿了 new Foo() 创建对象的语法(虽然和面向对象创建实例的底层逻辑完全不一样)
```
function Foo(){
this.name = 'foo'
this.label = 'function'
}
const foo = new Foo()
// new Foo执行的内部逻辑如下
let obj = {}
obj.__proto__ = Foo.prototype
let args = [...arguments]
let result= Foo.call(obj, args)
if (typeof result === 'object'){
return result
}
return obj
```
作者回复:赞
2020-03-26
8

编辑推荐

讲师的其他课程

包含这门课的学习路径

前端工程师
24门课程 109.3w人学习
看过的人还看了





