Javascript初学者关于继承的学习笔记

//具体如下:

//方法一:原型继承:–>导致的||《问题》||:每次创建的实列,都会拥有共同的属性、属性值和方法

//一、创造飞机模板
function Plane(src,x,y,bl) {
this.src=src;
this.x = x;
this.y = y;
this.speed;
this.blood = bl;
this.move = function () {
console.log(‘飞机下移动’)
};
this.init = function () {
console.log(‘飞机初始化’)
};
}
//二、创建玩家飞机模板
function palyerPlane() {
//(一)这里需要去继承飞机模板的属性和方法----------->这就是继承
//(二)自己的属性和方法
}
palyerPlane.prototype=new Plane(’./img’,10,10,20);
let palyerPlane1=new palyerPlane();
console.log(palyerPlane1);//------------>打印出来的palyerPlane1就拥有了Plane的属性和方法

//方法二:call方法
//这两个都是函数的方法:函数名.call()和函数名.apply()
function Plane1(src,x,y,bl) {
    this.src=src;
    this.x = x;
    this.y = y;
    this.speed;
    this.blood = bl;
    this.move = function () {
        console.log('飞机模板移动')
    };
    this.init = function () {
        console.log('飞机初始化')
    };
}
//二、创建玩家飞机模板
function palyerPlane2(src,x,y,bl) {
    //(一)这里需要去继承飞机模板的属性和方法----------->这就是继承
    console.log(this);//这里的this指向palyerPlane2构造函数的实例化对象。call方法实现的原理就是改变Plane1这个构造函数的this指向
    Plane1.call(this,src,x,y,bl)//******这行代码的意思是:将玩家飞机的实例化对象发送给Plane飞机模板
                    // ()里面第一个参数是this,后面可接无数个参数
    //(二)自己的属性和方法
    this.move=function () {
        console.log('玩家飞机移动方法')
    }
}
let palyerPlane3=new palyerPlane2('./img',10,20,20);
console.log(palyerPlane3);//------------>打印出来的palyerPlane1就拥有了Plane的属性和方法

//例如:
let obj={name:'李白'};
let fun=function () {
    console.log(this)
};
fun();//----------->这里执行函数,打印指向window
fun.call(obj)//----------->这里执行函数,打印指向obj对象
//=============方法三:apply方法
//apply方法和call方法几乎没有区别,唯一区别在于:53行。
// Plane1.apply(this,arr)只有两个参数,arr[0]就代表上面的src属性,依次后延
//Plane1.apply(this,arguments)---->这样写
//例如:
let obj1={
    name:'李白',
    eat(a){
        console.log(this)
    }
}
obj1.eat.apply();//什么都不填。就是相当于填了undefined。----->指向window
obj1.eat.apply(1);//传了数字1------>指向1
//总结就是:传什么指向什么
# //一、创造飞机模板
function Plane(src,x,y,bl) {
    this.src=src;
    this.x = x;
    this.y = y;
    this.speed;
    this.blood = bl;
    this.move = function () {
        console.log('飞机下移动')
    };
    this.init = function () {
        console.log('飞机初始化')
    };
}

以上便是自己的一些学习心得,如有错误,欢迎指正。Javascript,天下无双。奥里给!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值