实例对象和函数对象的区别

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

实例对象和函数对象的区别

BAHG   2020-05-17 我要评论

实例对象和函数对象本质区别:

实例对象:通过 new 函数产生的对象称为实例对象,简称对象。

函数对象:将函数作为对象使用时,简称为函数对。

下面举例说明:

  function Fn() {

  }
  const fn = new Fn()
  console.log(fn);  
  console.log(Fn.prototype)
  console.log(Fn.bind())

结果:

 

分析代码:

首先定义一个函数,即 Fn 是一个函数。接着 new Fn(),说明 Fn 是一个构造函数。

关于构造函数请参考https://blog.csdn.net/m_ssy/articlehttps://img.qb5200.com/download-x/details/82894813

此时 fn 是 Fn 的实例对象,简称对象。因此第一条打印语句输出的就是一个对象。

接着 Fn.prototype,每创建一个函数,该函数都会自动带有一个prototype属性。按语法格式来看这里的 Fn 应该是一个对象,但是它又是一个函数,这个时候我们就把 Fn 称为函数对象。

这里涉及到 prototype 知识以及函数和对象之间的关系, 请参考 https://blog.csdn.net/flyingpig2016/articlehttps://img.qb5200.com/download-x/details/53048394、https://www.cnblogs.com/liyusmile/p/8820443.html、https://blog.csdn.net/zhang1988ling/articlehttps://img.qb5200.com/download-x/details/84915542

紧接着 Fn.bind(),表示在调用函数对象的 bind 方法,注意只有函数对象才有bind方法,一般的对象没有这个方法。说明 bind 方法在 Fn 的原型上。请参考 https://blog.csdn.net/qq_42019025/articlehttps://img.qb5200.com/download-x/details/80708446

此外函数对象的方法还有 call() 方法和 apply() 方法,详细介绍请参考 https://blog.csdn.net/qq2071114140/articlehttps://img.qb5200.com/download-x/details/100024421

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们