面向对象03 构造函数的书写和使用

构造函数的书写和使用

明确:构造函数也是,只不过是在调用的时候和 new 关键字连用了
目的:就是为了创建一个 有属性 有方法 合理的 对象

  1. 调用必须有 new 关键字
    => 如果没有,那么没有创建对象的能力
    => 只要有,就会自动创建一个对象
// 1. 必须和 new 关键字连用
        function fn(){}
        let o1=new fn()
        console.log(o1)  // 会生成一个对象 fn{}
        let o2=fn()
        console.log(o2)  // undefined
  1. 不要再构造函数内部写 return
    => 如果写了基本数据类型 写了白写
    => 如果写了引用数据类型 构造函数白写
   	// 2. 不要写return
           function fn(){
               // 基本数据类型写了白写
               // return 123
              
               // 引用数据类型 构造函数白写
               // return []
           }
          let o1=new fn()
          console.log(o1)  //返回一个 fn{}
  1. 构造函数在调用的时候,如果不传递参数,最后小括号可以不写
    =>但是推荐我们都写上
 // 3. 不传递参数,(), 可以不写
        function fn(){}
        let o1=new fn()
        let o2=new fn
  1. 构造函数推荐首字母大写
    => 是为了直观看出和普通函数的区别
    => 看到首字母大写的函数基本上就要和new连用
// 4. 首字母大写
        function Fn() {  }
        function fn() {  }
  1. 当函数和new 关键字连用
    => 会创造对象,我们关创造出来的对象叫实例对象
    => 我们关创造出来的过程叫做 实例化 过程
    => 构造函数体内的 this 指向实例对象
    => 也就是本次 new 的时候创建的那个对象
  // 5.当函数和new 关键字连用this指向
        function Person(name){
            this.name=name
            this.sayHi=function(){console.log("hello World")}
        }

        // 本次 new 的时候 Person 会创造一个对象
        // 把创造出来的对象赋值给了 变量 P1
        // 我们关 p1 叫做 Person 的实例化对象
        // 本次调用的时候,Person 的 this指向P1
        let p1=new Person("错i")

        // 本次 new 的时候 Person 创造第二个对象
        // 赋值给了p2 变量
        // p2 也是Person 的实例化对象
        // 本次调用的时候,Person 的 this指向P2
        let p2=new Person("局部地区有黑洞")
        p1.sayHi()
        p2.sayHi()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值