当前位置: 首页 > 知识库问答 >
问题:

javascript - JavaScript 中如何实现链式调用的函数?

子车俊哲
2024-04-23
Sint(1,2).j(10) // 13

这样的函数怎么实现。

function Sint(a,b){    this.val= a + b}Sint.prototype.j= function(e){    return this.val + e}

这样操作需要 new Sint(1,2) ,有什么办法可以实现直接 Sint(1,2).j(10) 输出结果吗?

共有2个答案

南门飞
2024-04-23

补充一个思路,直接打印没法做到直接输出值,但是可以利用参与计算时,底层会调用 Symbol.toPrimitive 所绑定的方法,是可以做到直接跟运算符号的

function Sum(...args) {    this.value = args.reduce((a, b) => a + b, 0);    return new Proxy(this, {        get: function (target, prop) {            if (prop === Symbol.toPrimitive) {                return () => target.value;            }            return target[prop];        }    });}Sum.prototype.add = function (value) {    this.value += value;    return this;}

使用示例

// 访问值new Sum(1,2,3).add(4).add(5).value // 15// 参与计算new Sum(1,2,3).add(4).add(5) + 20 // 35
史烈
2024-04-23
function Sint(a: number, b: number) {  return {    val: a + b,    j: function (e: number) {      return this.val + e;    }  } } console.log(Sint(1,2).j(10));   // 13
function Sint(a: number, b: number) : any {  return new Proxy({} as {}, {    get(target, prop) {      if (prop === 'j') {        return (e: number) => a + b + e;      }      return Reflect.get(target, prop);    }  })}console.log(Sint(1, 2).j(10));   // 13

持续链 那得加一个启动函数

function Sints(a: number, b: number) {  return {    _count : a + b,    j: function (e: number) {      this._count += e      return this;    },    exec: function () {      return this._count;    }  } } console.log(Sints(1,2).j(10).j(20).j(30).exec())
 类似资料:
  • 问题内容: 如何使用链接调用JavaScript代码? 问题答案: 要么 编辑: 上面的回答确实不是一个好的解决方案,自从我最初发布以来,已经学到了很多有关JS的知识.

  • 参考leetcode的javascript解决方案-添加两个数字https://leetcode.com/problems/add-two-numbers/ 为什么列表范围在头部范围改变时不改变,即头部改变时。next被分配给新节点引用,head被分配回head。接下来,为什么要列出它。next没有改变,与整个链表保持相同 请参考以下解决方案- 我试了下面的东西,但它给出了一些不同的输出,当a.n

  • 问题内容: 有没有办法找出调用堆栈? 问题答案: 请注意,此功能是 非标准的 ,来自: 非标准 此功能是非标准的,不在标准范围内。不要在面向Web的生产站点上使用它:它不适用于每个用户。实现之间也可能存在很大的不兼容性,并且将来的行为可能会更改。 以下是2008年的旧答案,现代Javascript不再支持该答案:

  • 问题内容: 我想包装这样的javascript代码: 这是我如何用Java编写它: 但这不起作用。即使您在我的浏览器控制台中也没有任何错误。有人知道如何使它适用于外部回调函数吗?感谢致敬。 问题答案: 我终于找到了解决方案。看来我的Java代码与我的JavaScript代码不一致。感谢Colin Alworth为我指出了不一致的部分。所以这是我的完整代码: 现在,每当我运行它时,都会正确调用外部函

  • 本文向大家介绍JavaScript的级联函数用法简单示例【链式调用】,包括了JavaScript的级联函数用法简单示例【链式调用】的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JavaScript的级联函数用法。分享给大家供大家参考,具体如下: 级联函数 级联函数就是在对象调用中通过点的方式串联调用,在jQuery中就是链式调用, 其关键点就是在内部 return this 返回自身 应

  • 问题内容: 如何从PHP调用JavaScript函数? 以下代码来自 xyz.html (单击按钮时),它在外部 xyz.js中 调用a 。这将调用wait.php。 和 wait.php 从那里以同样的方式从另一个PHP文件调用代码。 该否则工作正常,但它不会被调用我想要的方式。 问题答案: 就PHP而言(或者实际上,通常是一个Web服务器),HTML页面只不过是一个大字符串而已。 您可以使用P