首页 > 其他分享 >js继承链讲解

js继承链讲解

时间:2022-11-15 20:44:30浏览次数:49  
标签:function 继承 cat tiger 对象 讲解 var new js

构造函数可以制作一个老虎对象

js没有类的概念, 因此js的继承不是通过类的继承实现的,而是通过原型的概念来实现的

//这个构造函数用来制造对象
function tiger() {
	this.bark = function() {
		alert('我是百兽之王');
	}
}
var hu = new tiger();

上面的hu对应着真正的老虎, 而tiger对应着

照猫画虎: 我们明确的对tiger函数指定, 用某个具体的cat对象,做老虎的原型,并创建老虎对象

function cat() {
	this.climb() {
		alert('我会爬树');
	}
}
var bosi = new cat();
hu.bark();
bosi.climb();

hu.climb(); //老虎不会爬树

//开始继承
tiger.prototype = new cat();
var hnhu = new tiger();
hnhu.climb();

在这个过程中, 发生了什么?

  1. 构造空对象hnhu{}
  2. hnhu.bark = function() {}
  3. hnhu.proto = tiger.prototype //这是继承的关键
    就是说---js中, 每个对象都有一个__proto__指向其原型对象
function cat() {
	var climb = function () {
		alert("我会爬树");
	}
}
var bosi = new cat();
console.log(cat.prototype.constructor); //因为原型对象的constructor指向cat, 所以显示为cat
consloe.log(cat.prototype._proto_);

老虎现在自身对象上面寻找, 没有爬树方法,去找原型,原型cat对象上有此方法

给所有的对象加上一个唱歌功能

Obkect.prototype.sing = function() {
	alert("出场我的爱");
}
function Pig() {
	this.eat = "30kg"; //每天吃30kg
}

标签:function,继承,cat,tiger,对象,讲解,var,new,js
From: https://www.cnblogs.com/zhengel/p/16893767.html

相关文章

  • Tween.js动画
    一,安装及引用#yarnyarnadd@tweenjs/tween.js#npmnpminstall@tweenjs/tween.js--save#引用importTweenfrom'@tweenjs/tween.js'二,基本使用impor......
  • 浅析 js 实现网页截图的两种方式
    参考:https://juejin.cn/post/6844903465756393486<p>Web端的截图(生成图片)并不算是个高频的需求,资料自然也不算多,查来查去,也不过Canvas和SVG两种实现方案,原......
  • 淘宝数据采集之js采集
    搜索页面采集,数据在控制台哦!!!搜索页面采集,数据在控制台哦!!!搜索页面采集,数据在控制台哦!!!既然能打到控制台,当然也能传到系统!!!既然能打到控制台,当然也能传到系统!!!既然能打......
  • 淘宝首页数据采集之js采集
    搜索页面采集,数据在控制台哦!!!搜索页面采集,数据在控制台哦!!!搜索页面采集,数据在控制台哦!!!既然能打到控制台,当然也能传到系统!!!既然能打到控制台,当然也能传到系统!!!既然能打......
  • 使用vue-json-editor实现json编辑框
    1、进入到自己的项目,使用npm安装vue-json-editornpminstallvue-json-editor--save2、在vue组件中使用vue-json-editor<template><div><p>vue-json-edito......
  • simpread-(130 条消息) js 中常见的导入导出方式_AntyCoder 的博客 - CSDN 博客_js 导
    常见的导出方式创建文件foo.js//设置常量constname='tom';constage=20;consthello=function(age){console.log('张三今年'+age)}方式一exportc......
  • js实现深度优先遍历和广度优先遍历
    什么是深度优先和广度优先其实简单来说深度优先就是自上而下的遍历搜索广度优先则是逐层遍历,如下图所示深度优先广度优先两者的区别对于算法来说无非就是时......
  • .NET 7 升级Visual Studio 2022 17.4发生 WorkloadManifest.json冲突,导致项目无法加载
    .NET7的发布,升级VisualStudio2022的17.4版本,然后无法打开所有解决方案。提示信息如下异常:SDK解析程序失败:"尝试解析SDK"Microsoft.NET.Sdk"时,SDK解析程序”Microsoft.Do......
  • java,抽象类,接口的方法,子类继承是不是必须全部实现
    普通类继承,并非一定要重写父类方法。抽象类继承,如果子类也是一个抽象类,并不要求一定重写父类方法。如果子类不是抽象类,则要求子类一定要实现父类中的抽象方法。接......
  • 根据继承接口批量注入GRPC客户端
    ///<summary>///作用域批量注入grpc数据///</summary>///<typeparamname="IGrpcDependency">根据泛型获取需要注入的grpc接口<......