首页 > 其他分享 >面试-JS基础知识-原型和原型链

面试-JS基础知识-原型和原型链

时间:2024-09-10 16:51:39浏览次数:11  
标签:console name number 基础知识 原型 JS class log

JS本身是基于原型来继承的语言。
问题引出:

  • 如何判断一个变量是不是数组?
  • 手写一个简易的jQuery,考虑插件和扩展性
  • class的原型本质,怎么理解?

知识点

  • class和继承
  • 类型判断 instanceof
  • 原型和原型链

class
class相当于一个模版,可以用来构建(constructor)东西。

class Student {
  constructor(name, number){
    this.name = name
    this.number = number
  }
  sayHi(){
    console.log(
      `name ${this.name}, number ${this.number}`
    )
  }
}

// 通过类 new一个实例或对象
const taylor = new Student('Tay',100)
console.log(taylor.name)
console.log(taylor.number)
taylor.sayHi()

继承

  • extends(子类继承父类)
  • super (子类执行父类的构造函数)
  • 扩展或重写方法
class People {
  constructor(name) {
    this.name = name;
  }
  eat() {
    console.log(`${this.name} likes to eat delicious food!`);
  }
}

// 子类
class Student extends People {
  constructor(name, studentNum) {
    super(name);
    this.studentNum = studentNum;
  }
  sayHi() {
    console.log(`I am ${this.name}, my student number is ${this.studentNum}.`);
  }
}

const xialuo = new Student('夏洛',0001)
xialuo.sayHi()

原型

原型链
当前对象会先从自身寻找有无该属性,没有的话就顺着原型链的隐式原型一层一层往上找,直到找到为止。

标签:console,name,number,基础知识,原型,JS,class,log
From: https://www.cnblogs.com/gardenOfCicy/p/18406378

相关文章

  • js对象转数组对象
    1.创建一个baseFun.jsexportfunctionobjectFun(obj){constresult=[]//处理所有可能的JSON字符串字段,递归处理所有嵌套JSON字符串functionprocessJsonFields(obj){for(constkeyinobj){if(obj.hasOwnProperty(key)){......
  • RapidJSON 的坑--允许Object对象存在相同的key,且key为数字时序列化报异常
    RapidJSON的坑--允许Object对象存在相同的key,且key为数字时序列化报异常测试代码如下:1voidshow(rapidjson::Document&doc)2{3printf("-----------------foriterator\nMemberCount:%d\n",doc.MemberCount());4for(autoit=doc.MemberBegin();it!=doc......
  • 3.js - 阴影映射、色调映射(曝光度)
    阴影映射、色调映射阴影映射shadowMapconstrenderer=newTHREE.WebGLRenderer({alpha:true})`阴影映射: 用于,计算物体投射到其他物体上阴影的技术, 阴影映射,通过,在场景中,从光源的视角渲染一次场景(深度测试)来工作,从而确定哪些部分被其他物体遮挡,进而生成阴影。`......
  • 推荐一款好用的golang修复无效json的库:JSONRepair
    简单来说,就是可以将错误格式(非标准)的json修正,如下图所示: 我的json明显不是标准的json格式,是不能被解析的: 但是JSONRepair库也能修复。 github地址:https://github.com/kaptinlin/jsonrepair使用也非常简单:1、安装:gogetgithub.com/kaptinlin/jsonrepair2......
  • js中【异步编程】超详细解读,看这一篇就够了
    一、JavaScript异步编程概述JavaScript是一门单线程语言,这意味着它同一时间只能执行一个任务。在现代Web开发中,异步编程变得尤为重要,因为许多任务(如网络请求、文件读取、定时器等)需要大量时间,如果使用同步编程模型,这些任务会阻塞整个线程,导致页面或程序卡顿。为了解决这个......
  • 【整理】【java开发】JavaWeb之JSP、Cookie、Session(一)
    一、JSP介绍及原理1.1JSP简介1.2JSP简单入门1.3JSP原理介绍二、JSP脚本2.1JSP脚本形式2.2JSPEL表达式2.3JSPJSTL标签三、会话跟踪技术3.1Cookie3.2Session原创0xNvyao安全随笔声明请勿利用本公众号文章内的相关......
  • js方法-格式化时间
    /**************************************时间格式化处理************************************/functiondateFtt(fmt,date)//fmt-例如'yyyy-mm-ddhh:ii:ss'{varo={"m+":date.getMonth()+1,//月份"d+":date.getDate(),//日......
  • 【开源免费】基于SpringBoot+Vue.JS社区团购系统(JAVA毕业设计)
    本文项目编号T024,文末自助获取源码\color{red}{T024,文末自助获取源码}......
  • 【开源免费】基于SpringBoot+Vue.JS课程作业管理系统(JAVA毕业设计)
    本文项目编号T023,文末自助获取源码\color{red}{T023,文末自助获取源码}......
  • js中eval执行的脚本参数不固定,并且脚本中有return时,如何处理
    最近就遇到了用eval执行动态脚本时,拿不到return中的值的问题,如下界面:点击测试函数,进行计算,计算时遇到两点问题:1.传入的参数是动态的,如何解决变量声明问题?2.eval进行执行脚本时,拿不到return的值?现在将代码贴下,查看解决方案:functionemrscript():any{letobj={}......