构造函数--原型

使用构造函数构造对象时,我们可以将一些共有的属性或方法放在prototype中,从而达到节省内存的作用

  • new对象时发生了什么?
  1. 新建一个空对象
  2. 空对象.__proto__=构造函数.prototype
  3. this指向空对象
  4. 根据上下文绑带赋值,将对象属性都放入空对象中
  5. return这个对象
  • 一般用法举例
复制代码
  function Person(name){
      this.name=name
      this.age=18
    }
    var nicoz=new Person('nicoz')
    Person.prototype.sayHi=function(){
      console.log('Hi~')
    }
    console.log(nicoz)
    nicoz.sayHi()
复制代码

 注意点1:构造函数如果返回的不是对象,会忽略掉return的东西,而返回默认返回的对象

  function Person(name){
      this.name=name
      this.age=18
      return name
    }
    var nicoz=new Person('nicoz')
    console.log(nicoz)

 注意点2:构造函数如果返回了其他对象,那么此时返回对象.__proto__不再等于构造函数.prototype,此时再去调用prototype上的方法会报错

复制代码
  function Person(name){
      this.name=name
      this.age=18
      return {name:name}
    }
    var nicoz=new Person('nicoz')
    console.log(nicoz)
    Person.prototype.sayHi=function(){
      console.log('Hi~')
    }
    console.log(nicoz.__proto__==Person.prototype)
    nicoz.sayHi()
复制代码

posted @   南无、  阅读(29)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示