请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于原型的问题

  function Person(name) {
    this.name = name
    this.showName = function () {
      console.log(this.name)
      return this.name
    }
  }
  console.log('Person')
  console.dir(Person)

  class Person1 {
    showName() {
      console.log(this.name)
      return this.name
    }
  }
  console.log('Person1')
  console.dir(Person1)

图片描述
如上图代码所示,
我们都知道,构造函数Person的prototype属性指向浏览器内存中创建的原型对象(Person.prototype),
通过构造函数Person创建的原型对象(Person.prototype)没有showName方法
而通过class生成的原型对象(Person1.prototype)中有showName方法
请问,这是什么原因。
构造函数必须使用Person.prototype.showName = ... 才和 class效果相同

正在回答 回答被采纳积分+3

1回答

双越 2023-07-06 08:03:16

通过构造函数Person创建的原型对象(Person.prototype) —— 这句话没看懂


整体看着也很懵,你可以通过代码注释的形式来描述问题,多配合代码来展示。

0 回复 有任何疑惑可以回复我~
  • 提问者 慕虎2023661 #1
    意思是构造函数中,写一个this.fn,和class中写一个fn, class new的实例原型上有fn,而构造函数new的实例没有
    回复 有任何疑惑可以回复我~ 2023-07-07 01:39:59
  • 双越 回复 提问者 慕虎2023661 #2
    class 中写一个 fn ,相当于构造函数写一个 prototype.fn (而不是 this.fn)
    回复 有任何疑惑可以回复我~ 2023-07-07 08:04:50
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信