函数三种角色剖析
发布日期:2021-05-04 20:18:21 浏览次数:24 分类:原创文章

本文共 653 字,大约阅读时间需要 2 分钟。

函数三种角色剖析

function Fn(){   	this.x=100;}Fn.prototype.getX = function(){   	console.log(this.x);}let f1 = new Fn;let f2 = new Fn;
  • 函数
    函数本身是一个堆内存,内部存储的是一堆没有意义的代码字符串(上下文,作用域相关知识和概念)
  • 类(构造函数)
    函数也可以被当作类操作,用new来执行(类、实例、原型、原型链相关概念)
  • 对象
    函数还是一个对象,包含键值对,有prototype(原型),还有name(函数名)、length(形参个数)和__proto__(原型链)等属性

函数三种角色分析图
函数三种角色剖析

  • 函数的三种角色本身没有必然联系
  • 所有的函数(普通函数/构造函数…)都是Function类的一个实例
    • Function.prototype值是一个匿名空函数,但是没有prototype。
    • Function.prototype.__proto__指向Object.prototype(万物皆对象,每一个对象都是Object的实例)
    • Function.__proto__也是指向Function.prototype
  • Object是所有对象的基类,万物皆对象
    • Object.prototype.__proto__值是null(若存在应该指向自己,这样毫无意义)
    • 实例.__proto__指向当前所属类的实例([f1/ f2].__proto__ === Fn.peototype)

练习题+图形解析
在这里插入图片描述

上一篇:检测数据类型的四种办法
下一篇:JavaScript 常用操作符小结

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2025年04月08日 06时35分38秒