我想知道是否有办法将对象属性声明为函数,同时也作为对象声明。
我有一个JavaScript程序,它提供了一个简单的API,可以将AJAX请求发送到服务器。我的目标是尽可能使这个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
我怀疑这甚至是可能的,因为我从来没有喜欢它,但我想不出更清晰和人类可读的方法来布局方法。当然会很好!
答案 0 :(得分: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')
更具可读性。