初识(Javascript) -- js //继承

对象冒充实现继承

function Person(){
    this.name = '张三' ;
    this.age = 18
    this.run = () =>{
        alert(`我叫   ${this.name} `)
    }
}


Person.prototype.sex = '男'
Person.prototype.work = ()=>{console.log('我在工作')}


function PersonTo (){
    Person.call(this)
}

let one = new PersonTo()

console.log(one.name)//正确
console.log(one.work)//错误

对象冒充可以继承构造函数里面的属性和方法
对象冒充不可以继承原型链上的属性和方法

重要部分

function PersonTo (){
    Person.call(this)
}

原型链实现继承

function Person(){
    this.name = '张三' ;
    this.age = 18
    this.run = () =>{
        alert(`我叫   ${this.name} `)
    }
}


Person.prototype.sex = '男'
Person.prototype.work = ()=>{console.log('我在工作')}



function PersonTwo(){

}

PersonTwo.prototype = new Person()
var two = PersonTwo.work()
var two1 = PersonTwo.run()

原型链可以继承构造函数和原型链里面的属性和方法

重要部分

PersonTwo.prototype = new Person()

分割部分

function Person(name,age){
    this.name = '张三' ;
    this.age = 18
    this.run = () =>{
        alert(`我叫   ${this.name} `)
    }
}


Person.prototype.sex = '男'
Person.prototype.work = ()=>{console.log('我在工作')}

function PersonTwo(){

}

PersonTwo.prototype = new Person('王五', 20)

PersonTwo.run()//错误,打印是undefined在运动

原型链继承在实例化子类是没法给父类传参

构造函数和原型链实现继承

function Person(name,age){
    this.name = '张三' ;
    this.age = 18
    this.run = () =>{
        alert(`我叫   ${this.name} `)
    }
}


Person.prototype.sex = '男'
Person.prototype.work = ()=>{console.log('我在工作')}

function PersonTwo(name ,age){
    Person.call(this,name ,age)
}

PersonTwo.prototype = new Person('王五', 20)
//or
//PersonTwo.prototype = Person。prototype 

PersonTwo.run()//正常,打印是王五在运动


构造函数和原型链可以继承构造函数和原型链里面的属性和方法,也可以在实例化子级的时候传参

重要部分

function PersonTwo(name ,age){
    Person.call(this,name ,age)
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值