首页 > 其他分享 >Js链式调用面试题

Js链式调用面试题

时间:2024-04-26 10:24:29浏览次数:17  
标签:面试题 return val get number Js result 链式 obj

Js链式调用

需求:要求可以链式调用对象的方法,该对象有四个方法,加减乘除,一个get结果方法

eg:

counter.add(3).sub(1).get() // 2

方法一

通过Es6实现

class Counter {
  private result = 0;

  add(val: number) {
    this.result += val;
    return this;
  }
  sub(val: number) {
    this.result -= val;
    return this;
  }
  mul(val: number) {
    this.result *= val;
    return this;
  }
  div(val: number) {
    this.result /= val;
    return this;
  }
  get() {
    return this.result;
  }
}

方法二

通过对象实现


const obj = {
  result: 0,
  add: (val: number) => {
    obj.result += val;
    return obj;
  },
  sub: (val: number) => {
    obj.result -= val;
    return obj;
  },
  get: () => {
    return obj.result;
  },
};

这里提供两种思路,大家有什么好的方法可以评论区讨论一下

标签:面试题,return,val,get,number,Js,result,链式,obj
From: https://www.cnblogs.com/UnfetteredMan/p/18159376

相关文章

  • vue3+vite+js 引用public文件夹中js文件
    vue的public的资源在打包时不会被编译,只会copy所以在在src路径下引入public文件夹下的图片、视频、音频,编译不会改变其路径,但是在src下引入public文件夹下的js、json,在打包时都会被编译,所以直接引入会丢失路径(因为打包时,当前页面引入的路径被hash打包,而public文件夹下只是被cop......
  • js逆向实战之喜马拉雅Xm-Sign参数解密
    url:https://www.ximalaya.com/channel/11/分析过程抓包,关注有页面数据回显的数据包。该url的请求头中有个加密的参数,找到该参数的加密过程。由于该参数名比较不常见,可以直接全局搜索这个参数名。只有一处,打断点。切换页码,触发断点。非常直接,xm-sign是由d.getS......
  • 2024年vue 开发环境 Node.js于win10环境下的安装
    2024年vue开发环境Node.js于win10环境下的安装导航2024年vue开发环境Node.js于win10环境下的安装导航一、下载node.js二、安装node.js三、测试(一)四、环境配置五、测试(二)六、安装淘宝镜像七、安装vue脚手架一、下载node.jsNode.js官方网站下载:https://nodejs.org/en......
  • 链式栈
    数据结构线性表--链式栈链式栈相当于是一个单向不循环的链表。以下是链式栈的一些基本操作,插入删除以及遍历等。提高可移植性链式栈中元素的数据类型为DataType_t,用户可以根据实际情况修改链表中元素的类型/**************************************************......
  • 以链表作为基础实现栈空间(链式栈)
    数据结构以链表作为基础实现栈空间(链式栈)/****************************************************************************************************************** * filename : LinkedStack.c* author : [email protected]* data : 2024/04/25* function : 链式栈......
  • threejs 父元素 相对位置 position 网格对象
    设置position都是相对于父元素的位置设置的//导入threejsimport*asTHREEfrom"three";import{OrbitControls}from"three/examples/jsm/controls/OrbitControls.js";//创建场景sceneconstscene=newTHREE.Scene();//console.log(scene,'scene'......
  • vite打包,pdfjs-dist 报错import引入pdfjs-dist报错Top-level await is not available
    Top-levelawaitisnotavailableintheconfiguredtargetenvironment("chrome87","edge88","es2020","firefox78","safari14"+2overrides)node_modules/pdfjs-dist/build/pdf.mjs:17349:53:17349│/****......
  • Javascript的数据类型和json数组
    4个数据类型:NumberStringBooleanUndefinedalert(parseInt(k));//如果不是数字会输出NaN,从第一个字符开始输出数字,直到不是数字后返回值。json数组://js中k、v型数据,使用jsonvarperson={name:"张三",//注意里面的元素用,分割。定义的是key是name的value值为张三age......
  • JSON 序列化 属性名 大写变成小写 保持不变 newsoft.json system.text.json
    JSON序列化属性名由大写变成小写的问题在ASP.NET中,默认情况下,JSON序列化会将属性名转换为小写(camelcase)以匹配JSON的约定。如果您希望保留C#的命名约定(即属性名的大小写不变),您需要更改默认的JSON序列化器。System.Text.Json使用System.Text.Json(推荐):在Startup.c......
  • three.js实现相机碰撞,相机不穿墙壁、物体
    大家好,本文实现了相机碰撞检测,使相机不穿墙壁、物体,并给出了思路和代码,感谢大家~关键词:数字孪生、three.js、Web3D、WebGL、相机碰撞、游戏相机我正在承接Web3D数字孪生项目,具体介绍可看承接各种Web3D业务目录实现原理参考资料实现前:移动第三人称相机时,相机可能会穿入到物体......