美文网首页
JS中Function和Object的关系

JS中Function和Object的关系

作者: 与鱼雨遇 | 来源:发表于2017-11-03 15:12 被阅读0次

    JS中到底谁从属于谁?

    Function instanceOf Function //true

    Function instanceOf Object //true

    Object instanceOf Function //true

    Object instanceOf Object //true        


    图为网上:

    个人认为:

    JavaScript引擎是个工厂。

    最初,工厂做了一个最原始的产品原型。

    这个原型叫Object.prototype,本质上就是一组无序key-value存储({})

    之后,工厂在Object.prototype的基础上,研发出了可以保存一段“指令”并“生产产品”的原型产品,叫函数。

    起名为Function.prototype,本质上就是[Function: Empty](空函数)

    为了规模化生产,工厂在函数的基础上,生产出了两个构造器:

    生产函数的构造器叫Function,生产k-->v存储的构造器叫Object。

    你在工厂定制了一个产品,工厂根据Object.prototype给你做了一个Foo.prototype。

    然后工厂发现你定制的产品很不错。就在Function.prototype的基础上做了一个Foo的构造器,叫Foo。

    工厂在每个产品上打了个标签__proto__,以标明这个产品是从哪个原型生产的。

    为原型打了个标签constructor,标明哪个构造器可以依照这个原型生产产品。

    为构造器打了标签prototype,标明这个构造器可以从哪个原型生产产品。

    所以,我觉得先有Function还是Object,就看工厂先造谁了。其实先做哪个都无所谓。

    因为在你定制之前,他们都做好了。

    相关文章

      网友评论

          本文标题:JS中Function和Object的关系

          本文链接:https://www.haomeiwen.com/subject/kmytmxtx.html