0

我想知道是否有办法将对象属性声明为函数,同时也声明为对象。

我有一个 JavaScript 程序,它提供了一个将 AJAX 请求发送到服务器的简单 API。我的目标是尝试使这个 API 尽可能简单和易于阅读。

基本上,我想让这样做成为可能:

var app = new App();
app.get.client(123) // Get client ID 123
app.get.client.list() // Get an array of all clients
app.login('username', 'password') // Send credentials to log as username/password
app.login.as('John') // Login using credentials stored in a server-side constant

我什至怀疑这是否可能,因为我从来没有这样的事情,但我想不出一种更清晰、更易读的方法来布置方法。当然会很好!

4

1 回答 1

2

函数也是对象!

app.get.client = function(id) {
    // Get client by ID
};

app.get.client.list = function() {
    // List them
};

像你期望的那样工作。


不过,就个人而言,我会发现:

app.clients.byId(123)
app.clients
app.login('username', 'password')
app.loginAs('John')

更具可读性。

于 2013-03-07T18:52:42.793 回答