我一直在尝试使用JavaScript,并注意到我可以为这样的函数添加属性......
// a library function
function someLibrary(num) {
var obj = {};
obj.times = someLibrary.times(num);
return obj;
};
// add 'times' function to library
someLibrary.times = function(num){
return function(func) {
for(var i = 0; i < num; i += 1) {
func(i);
};
};
};
// prints 0 through 4
someLibrary(5).times(function(i){
console.log(i);
});
说someLibrary.times = function(){}
有什么不对吗?我没有看到任何关于以这种方式编写代码的文章。
答案 0 :(得分:2)
没有什么&#34;错误&#34;从技术的角度来看它,但绝对没有理由这样做。该库可能会在将来的某个时刻定义它自己的函数times
,现在您仍然遇到无法重新编写自己的代码库而无法升级到较新版本的库{ {1}}功能。
答案 1 :(得分:1)
是的,函数是一个对象,因此您可以为其附加属性。只是因为你不能意味着你应该这样做。