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

时间:2016-02-29 07:06:06

标签: 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()结果?

1 个答案:

答案 0 :(得分:1)

您需要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对象,该对象包含所选节点的集合,其原型具有.attr.css等所有好东西。