尽管我曾经一度非常热爱制作东西,但是现在却更渴望了解事物的运行原理。我经常寻找解决问题或修复bug的最佳方法,却很少花时间来研究我所使用的工具。
AI时代,有人焦虑失业,有人偷偷变强,不写代码不烧脑~
相关语录
-
从技术角度来说,函数实际上没有被复制,复制的是函数引用。
-
继承意味着复制操作,JavaScript(默认)并不会复制对象属性。相反,JavaScript会在两个对象之间创建一个关联,这样一个对象就可以通过委托访问另一个对象的属性和函数。
-
多态的另一个方面是,在继承链的不同层次中一个方法名可以被多次定义,当调用方法时会自动选择合适的定义。
-
实例化(instantiation)、继承(inheritance)和(相对)多态(polymorphism)。
-
硬绑定会大大降低函数的灵活性,使用硬绑定之后就无法使用隐式绑定或者显式绑定来修改this。
-
在任意代码片段外部添加包装函数,可以将内部的变量和函数定义“隐藏”起来,外部作用域无法访问包装函数内部的任何内容。
-
匿名函数没有name标识符,这会导致:1.调试栈更难追踪;2.自我引用(递归、事件(解除)绑定,等等)更难;3.代码(稍微)更难理解。
-
从语法角度来说,instanceof似乎是检查a1和Foo的关系,但是实际上它想说的是a1和Foo.prototype(引用的对象)是互相关联的。
-
构造形式和文字形式生成的对象是一样的。唯一的区别是,在文字声明中你可以添加多个键/值对,但是在构造形式中你必须逐个添加属性。
-
LHS和RHS的含义是“赋值操作的左侧或右侧”并不一定意味着就是“=赋值操作符的左侧或右侧”。赋值操作还有其他几种形式,因此在概念上最好将其理解为“赋值操作的目标是谁(LHS)”以及“谁是赋值操作的源头(RHS)”。

