每次调用对象时如何自动运行函数?

How can I run function automatically when calling object at each time?

每次调用对象时如何自动运行函数?

我有以下对象:

var myObject = {

    main: function(e) {
        //main
    },
    x: 1,
    y: 2,
    another: function(e) {
        //another 
    }
}

是否可以实现以下功能?

通话中

myObject();

会调用 main 方法。

但是打电话

myObject().another();

会调用 another 方法。

仅使用 myObecjt() 而不是 myObecjt.main()

如果我理解正确,你要找的代码结构如下:

var myObject = (function () {
  var t = {};
  t.main = function() {
    console.log("main");
  };
  t.another = function () {
    console.log("another");
  };
  t.main();
  return t;
});

这将产生以下功能:
调用 myObject(); 将调用 main 方法。
调用 myObject().another(); 将同时调用 mainanother 方法。

如果您正在寻找 jquery 之类的链接,请尝试这样的事情

function myObject(){
    if(this == window){
        return new myObject();
    }
    //whatever the main method does
    return this;
}
myObject.prototype.x = 1;
myObject.prototype.y = 2;
myObject.prototype.another = function(){
    //whatever the another method does
    return this;
}

像这样的东西,建议研究方法链和原型继承,以便干净地应用它。

或者更简单的东西

function myObject(){
    //whatever the main method does
    return myObject;
}
myObject.x = 1;
myObject.y = 2;
myObject.another = function(){
    //whatever the another method does
    return myObject;//method chaining may continue
}