我的一位朋友有一个流行的开源JavaScript库,在社区中使用得很好。他现在正在经历一个重构和应用最佳实践和约定的过程,并希望大写所有构造函数。所以在过去他可能已经定义了一个chart
对象,他现在希望它被称为Chart
以坚持约定。
因为这个库使用得很好,所以当他们使用旧的函数名称并最终弃用它们时,他宁愿警告开发人员。
我建议使用辅助函数:
var ObsoleteWithReplacement = function(replacementFunction, oldFnName, newFnName) {
var wrapper = function() {
if (console && console.warn) {
console.warn("WARNING! Obsolete function called. Function '" + oldFnName + "' has been deprecated, please use the new '" + newFnName + "' function instead!");
}
replacementFunction.apply(this, arguments);
}
wrapper.prototype = replacementFunction.prototype;
return wrapper;
}
可以如下调用:http://jsfiddle.net/rLNep/1/
这是一个很好的方法吗?你能推荐一种更好的方法吗?