javascript - 像 jQuery 一样在函数结果上调用函数

标签 javascript jquery object

我正在尝试构建两个函数,使其像 jQuery 函数一样工作,例如: jQuery( 'select').val();

这有效:

function func(a) {
    console.log(1);
    return a;
}

func.sub = function(n) {
    console.log(2);
}

func.sub(2);

但这不是:

function func(a) {
    console.log(1);
    return a;
}

func.sub = function(n) {
    console.log(2);
    //return func result[n];
}

func([1,2,3]).sub(2);

如何使第二个代码工作并读取 sub() 上的 func() 结果?

最佳答案

您需要让 func 返回一个具有 sub 方法的对象。

function Subbable(x) {
  this.value = x;
}
Subbable.prototype.sub = function(b) {
  return this.value - b;
}

function func(a) {
  return new Subbable(a);
}

func(10).sub(2)
// 8

jQuery 的 $(...) 通常返回一个 jQuery 对象,其中包含所选节点的集合,其原型(prototype)具有所有不错的功能,例如 .attr.css.

关于javascript - 像 jQuery 一样在函数结果上调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35693708/

相关文章:

Javascript 数组对象与类似数组的对象——说明

javascript - 为什么在我添加该功能时我的时间线没有消失又重新出现?

javascript - Maven YUI 压缩机 : compress after aggregation

javascript - React 组件的 if/else 条件渲染不起作用

javascript - 无限滚动不起作用

javascript按键名合并两个对象

javascript - 选择一个给定存储在字符串中的 div 名称的对象

java - 将对象 ArrayList 转换为双列表的最佳方法是什么

javascript - NodeJS - 使用 node-fetch 发送 JSON 对象参数

Javascript - 对对象进行分组和排序