JS 对象,原型的理解

来源:互联网 发布:sql存储过程解密工具 编辑:程序博客网 时间:2024/05/21 10:35
函数是一种特殊的对象。原型可以理解为工厂生产的模子
对象分为普通对象函数对象,Object(),Function()是JS自带的函数。

Function()是一个特例,可以理解为函数生产工厂(总工厂),负责生产函数(子工厂)。连Object()也是其生产的。
so,凡是通过 new Function() 创建的对象都是函数对象,其他的(如new f1())都是普通对象

函数的一个属性就是原型对象 prototype(工厂的模子)。注:普通对象没有prototype,但有__proto__属性(指向创建它的函数对象的原型对象prototype (他按照着生产的模子) )。

原型对象其实就是普通对象(Function.prototype除外,它是函数对象,但它很特殊,他没有prototype属性(前面说道函数对象都有prototype属性))

func.prototype就是func的一个实例对象。就是在func创建的时候,创建了一个它的实例对象并赋值给它的prototype
(  function  f1(){};   ====>   var temp = new f1(); f1. prototype = temp;  一个工厂必须要有一个模子 )


func.prototype.__proto__ === Object.prototype

Object.__proto__ === Function.prototype

Function.__proto__ === Function.prototype === Object.__proto__ === GOD

Function.prototype.prototype  === Object.__proto__.prototype ===undefined

Object.__proto__.__proto__=== Object.prototype

Object. prototype.__proto__ === null ===Object.__proto__.__proto__.__proto__

Object.constructor===Function






0 0
原创粉丝点击