构造函数详解

构造函数的本质还是为了生成一个对象

    let obj ={
      name:"yang",
      age:"19"
    }
    obj.tel=100
    obj['set'] ='男'
    console.log(obj.name);
    console.log(obj.age);

    for(let key in obj) {
       // console.log(key)
       console.log(obj[key])
     }
     console.log(obj)
     delete obj.tel
     console.log(obj)
     let obj3 = {
       name: 'zhangsan',
       age: 12
     }
     let obj2 = new Object({
       name: 'zhangsan'
     })
     function fn() {
       var num = 1
       return num
     }
     let a = fn()
     console.log(a)

任何一个函数在声明的时候都会伴生一个对象prototype 他就是函数的原型 原型中有一个constructor函数这个就是构造器
    构造器指向构造函数本身 实例化对象中有一个对象叫__proto__他指向构造函数的原型
    new的作用 1.调用了函数 2.将函数内部的this指向实例化对象 3.在this上挂在对应的数据和方法 4.返回这个对象
     function Person(name, age) { // 因为构造函数内部的this是指向实例化对象的 所以她不能用箭头函数声明
      我们使用实例化对象上面的属性和方法时会先在对像本身来找如果找不到就想对象的原型中去找如果还找不到就去原型的原型上去找直到找到活着报错为止 这个过程就叫原型链

     // console.log(this)
       this.name = name
       this.age = age
     }
     let person = new Person('羊羊', 1)
     let person2 = new Person('杨', 1)
     console.log(person)
     console.log(person2)
     console.log(person.__proto__ === Person.prototype)
     console.log(Person.prototype.constructor === Person)
     function IceDd(name, color) {
       this.name = name
       this.color = color
     }
     IceDd.prototype.say = function() {
       console.log('hello 我叫' + this.name)
     }
     let bdd = new IceDd('杨', 'gold')
     console.log(bdd)
     bdd.say()
     function Game(name, type) {
       this.name = name
       this.type = type
     }
     Game.prototype.ani = function() {
       console.log('播放开场动画')
     }
     function Role(name, sex, hit) {
       this.roleName = name
       this.sex = sex
       this.hit = hit
     }
    
     Role.prototype = new Game('王者荣耀','手游')
     Role.prototype.constructor = Role
     Role.prototype.roleSay = function() {
       console.log('我叫' + this.roleName)
     }
     let role = new Role('安琪啦(平时我很听话)', '女', '18')
     console.log(role)
     role.roleSay()
     role.ani()

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值