实例对象与函数对象区别

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

function Fn() {

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

在这里插入图片描述
首先,定义了一个函数,即Fn是一个函数,接着 new Fn(),说明 Fn 是一个构造函数。
此时 fn 是 Fn 的实例对象。因此第一条打印语句输出的就是一个对象。
接着 Fn.prototype,每创建一个函数,该函数都会自动带有一个prototype属性。按语法格式来看这里的 Fn 应该是一个对象,但是它又是一个函数,这个时候我们就把 Fn 称为函数对象。若有 Fn.prototype.add(),此时 add 称为原型对象上的方法。

prototype属性:每一个函数就是一个对象,函数对象都有一个子对象prototype对象,类是以函数的形式定义的,prototype表示该函数的原型,也表示一个类的成员的集合。
通过new创建一个类的实例对象时,prototype对象 的成员都成为了实例化对象的成员。
① 该对象被类所引用,只有函数对象才可以引用。
② 在new实例化后,其成员也被实例化,实例对象方可调用。
同时,函数是一个对象,函数对象若直接声明成员,不用被实例化即可调用。

紧接着 Fn.bind(),表示在调用函数对象的 bind 方法,注意只有函数对象才有bind方法,一般的对象没有这个方法。所以这句说明 Fn 是一个函数对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值