闲聊object与null
闲聊object与null

不清楚大家有没有想过为啥superclass最终指向nil,而isa指针最后会指向元类NSObject,形成环状?
个人的浅薄理解:
方法的查找是通过superclass一层一层的往下找的,循环或递归总的有个终点,有个跳出循环的哨兵条件,所以终点基本上是一种判空情况
对象只有三种类型(实例对象、类对象、元类对象),isa是用来指向存储方法的地方,方法只有对象方法和类方法,只有两个层级关系,不存储循环递归之类的情况,之所以有第三层isa指针,可能是为了统一处理一些公共方法,所以元类NSObject就是这层关系的终点

js的原型链也是类似的情况,链表总得有个头,不能出现环,隐式原型__proto__最终指向null。
constructor属性最终指向一切的起点Function()
###
引用源
Written on December 17, 2020
