-1
我不确定我是否理解以下代码片段(从here粘贴)。显然,作者创建了一个函数,然后为其分配属性。定义一个函数然后给它添加属性?
returnClient = function() {
var client;
client = function(href, options) { console.log('client called'); }
client.parse = function(source, config) { console.log('client.parse called'); }
return client;
}
//later
var client = returnClient();
//usage 1
client('localhost:9999/users');
//usage 2
client.parse({collection:{}});
这有什么用?这是一个很好的做法吗?他们为什么不返回一个对象?
您发布的代码不正确。在你的代码中,'returnClient'有一个名为'client'的局部变量,它是一个返回'undefined'的函数。 'returnClient'然后返回'client()',这意味着它返回'undefined'。因此,在你的'// later'部分,你试图使用'undefined'作为一个函数,然后作为一个对象。 (请注意,你链接的源代码不会*有*这个问题,你在这里发布时引入了这个问题。) – ruakh 2015-02-23 16:31:41
即使定义'doSomething'和'doSomethingElse'([fiddle](http:// jsfiddle.net/5njfqkz0/)) – Jamiec 2015-02-23 16:31:53
sry。修正错误 – Midiparse 2015-02-23 16:34:25