javascript历险记之继承

javascript历险记之继承

首页角色扮演李四历险记更新时间:2024-04-26

我们今天来学习一下js的继承。

原型链继承

例子:

Person.prototype={

constructor:Person,

say:function(){

console.log("你好")

},

run:function(){

console.log("正在进行百米冲刺")

}

}

拷贝继承

有的时候想使用某个对象中的属性,但是又不能直接修改它,于是就可以创建一个该对象的拷贝

var o1={age:2}

var o2=o1;

o2.age=18;

创建一个03对象的拷贝(克隆):for .... in循环

var 04={}

for(var key in 03){

var value=03[key];

04[key]=value;

}

04.name="李四"

console.log(04);

浅拷贝与深拷贝

浅拷贝只是拷贝一层属性,没有内部对象

深拷贝利用递归原理,将对象的若干层属性拷贝出来

拷贝也是继承

封装拷贝继承函数

function extend(source,target){

for(var key in source){

var value =source[key];

target[key]=value;

}

}

var o3={gender:"男"}

var o4={};

extend(o3,o4);

o4.gender="女"

console.log(o4);

对象扩展运算符(es6)

var source={name:"李白",age:15}

//target是一个新对象,同时拥有了name,age属性

var target={...source}

var target2={...source,age:18}

原型式继承(道格拉斯)

Object.create(null)(空对象)

应用场景:对象什么属性也没有

var parent={age:18}

var student=Object.create(parent);

函数的call,apply的调用方式

例子:

function Animal(name,age){

this.name=name;

this.age=age;

}

function Person(name){

//目的:将Animal函数的this指向

Animal.call(this,name)

等价于:

Animal.apply(this,[name])

this.say=say;

}

注意:Animal(父类构造函数)的代码必须完全适用于Person(子类构造函数)

好了,今天的继承就讲到这里了,觉得有用的话就关注暖夕H2,我会继续给大家带来技术干货~~

查看全文
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved