Open Joyeuxman opened 6 years ago
![Uploading 原型详解.png…]() ![Uploading proto.png…]()
http://www.zhangxinxu.com/wordpress/2016/01/understand-css-stacking-context-order-z-index/
文中指出: 如果层叠上下文元素不依赖z-index数值,则其层叠顺序是z-index:auto可看成z:index:0级别。 在 display:flex|inline-flex与层叠上下文 的例子中,设置display:flex使flex项目成为层叠上下文元素,而该项目本身已经有z-index,并生效值为1,不是auto或者0。我觉得你的结论不够严谨。
还有该flex项目上有两个属性,分别是background-color: blue; z-index: 1; 位于该项目下的img也是层叠上下文元素,其z-index:-1;依据层叠顺序图决定显示顺序时,为什么不拿项目的z-index的值和img的z-index的值进行比较决定显示顺序? 而是用background-color来和img的z-index来比较从而决定显示顺序? 这点不明白,烦请作者解释一下。谢谢
对象的三大特性
创建对象的几种方法
对象的分类
对象分为普通对象
object
和函数对象function
。凡是通过new Function()
创建的对象都是函数对象,其余都是普通对象。以下示例中f1
,f2
,Function
,Object
,归根结底都是通过new Function()
的方式进行创建的。构造函数、实例
原型对象prototype
在JS中定义对象(函数对象或者普通对象)时,对象中都会包含一些预先定义好的属性。其中每个函数对象都有一个
prototype
属性,该属性是一个普通对象,指向函数的原型对象。原型对象中也会有个预先定义好的属性constructor
,该属性(是一个指针)指向prototype
属性所在的函数。特殊情况(前面说的函数对象都有prototype属性)
Function.prototype
是一个函数对象,它没有原型对象。隐式原型
__proto__
JS在创建对象(不管是普通对象还是函数对象)的时候,都会有
__proto__
的内置属性,用于指向创建它的构造函数的原型对象。 请参考下图:实践环节
问题
person1.__proto__
是什么?Person.__proto__
是什么?Person.prototype.__proto__
是什么?Object.__proto__
是什么?Object.prototype__proto__
是什么?Function.prototype.__proto__
是什么?答案:
person1.__proto__ === Person.prototype
Person.__proto__ === Function.prototype
Person.prototype.__proto__ === Object.prototype
Object.__proto__ === Function.prototype
Object.prototype.__proto__ === null
此处为坑,码友莫入! 由此可见null
处于原型链的顶端。Function.prototype.__proto__ === Object.prototype
疑问解答:
Function.prototype
为什么是函数对象???Object.__proto__ === Function.prototype // true
Function.__proto__ === Function.prototype // true
Function.prototype.__proto__ === Object.prototype //true
总结: