分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

JS中对象的特征:继承

发布时间:2023-09-06 01:59责任编辑:顾先生关键词:暂无标签
子类沿用父类的属性和方法来达到重用,并且子类可以扩展自己的属性和方法2.1继承方法2.1.1对象冒充法优点:可以继承属性 缺点:不可以继承方法,检测类型可以发现子类不在父类中强制继承 js 先定义子类对象,然后再对象中写 this.inherit = 父类对象名 this.inherit(参数一,参数二,参数三...) delete this inherit;call/apple冒充法js 先定义子类对象,然后再对象中写 父类对象名.apply(this,[参数1,参数2...]); 父类对象名.call(this,参数1,参数2..)2.2原型链优点:可以继承方法,检测类型可以发现子类在父类中 缺点:获取不到属性子类名.prototype = new 父类对象名();2.3混合方式结合原型链和对象冒充法,既可以获取到属性,也可以继承方法,检测类型也可以发现子类在父类中定义一个子类对象,对象中用对象冒充法继承到父类属性 然后用原型链继承到父类方法看原型 子类对象名.prototype(只能找上一级) 子类对象名.proto(可以一直往上找)示例://父类动物function Animal(name,color,male) { ???this.name = name; ???this.color = color; ???this.male = male;}Animal.prototype.intro = function () { ???console.log("I am animal");}//子类猫function Cat(name,color,male) { ???Animal.apply(this,["咪咪","黑白色","雄"]); ???//继承父类的属性}Cat.prototype = new Animal(); ???//原型链继承父类的方法Cat.prototype.itself = function () { ???console.log("I am cat,怕水,舌头有倒刺");}//子类自己的方法要写在继承父类方法的后面let cat = new Cat();console.log(cat.name,cat.color,cat.male);cat.itself();cat.intro();//子类狗function Dog(name,color,male) { ???Animal.apply(this,["汪汪","黑白色","雄"]); ???????????}Dog.prototype = new Animal();Dog.prototype.itself = function () { ???console.log("I am dog,不怕水,舌头没倒刺");}let dog = new Dog();console.log(dog.name,dog.color,dog.male);dog.itself();dog.intro();console.log(Dog.prototype);console.log(Dog.prototype.prototype);console.log(Cat.__proto__);console.log(Cat.__proto__.__proto__);console.log(Cat.__proto__.__proto__.__proto__);//咪咪 黑白色 雄 ?i am cat ,怕水,舌头有倒刺 ?i am animal ?汪汪 黑白色 雄 ?i am dog, 不怕水,舌头没倒刺 ?i am animal//看原型 ???Animal { ?????name: undefined, ?????color: undefined, ?????male: undefined, ?????itself: [Function] } ???undefined ???[Function]//所有函数的__proto__都指向function ???{}//在往上就是空对象 ???null//再往上就是null这是最上一级,不能在往上了

JS中对象的特征:继承

原文地址:https://www.cnblogs.com/cj-18/p/9164612.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved