JS原型链与Objective-C内存布局不能说的秘密
本篇文章并不是新知识的探索,文章没啥含量,就是看到某2个不同领域的知识,被串联起来,或者语言的设计思想被印证了感到开心而记录下来。
文章图片
文章图片
文章图片
假期看了本关于 JS 的书。很多地方就是已知知识。但是看到2个地方感觉和现有知识体系有关联,蛮有意思。拍照记录了下
【JS原型链与Objective-C内存布局不能说的秘密】Javascript 借鉴了 Self 语言中关于原型的继承,可能会比较陌生,什么是“Self”?
看看 JS 的表现:假设从对象 O 中查询属性 X
- 如果 O 没有 X 这个自有属性,则会从 O 的原型对象查询属性 X
- 如果原型对象也没有叫做 X 的自有属性,但它有自己的原型,则继续查询这个原型的原型
- 这个过程会不断继续,直至找到属性 X 或者查询到一个原型为 null 的对象
可见,对象通过其 prototype 属性创建了一个用于继承属性的链条或链表。
对比 OC 对象内存布局,属性或者方法访问套路一致。
其实,Self 语言由派生自 Smalltalk,也就是 Objective-C 的借鉴语言。访问 JS 对象属性、方法(找不到则从原型链上不断回溯,直到找到或者找到元类对象 null),这个特性和 OC 一模一样。
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- Docker应用:容器间通信与Mariadb数据库主从复制
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量
- 第326天
- Shell-Bash变量与运算符
- 画解算法(1.|画解算法:1. 两数之和)
- 标签、语法规范、内联框架、超链接、CSS的编写位置、CSS语法、开发工具、块和内联、常用选择器、后代元素选择器、伪类、伪元素。
- 逻辑回归的理解与python示例
- Guava|Guava RateLimiter与限流算法
- 「#1-颜龙武」区块链的价值是什么()