我们开发了一个 Flex 组件,现在多个 Web 应用程序都在使用它。 我们发现一些回调是旧的并且它们有错误的参数。 例如,当它们用于设置某些参数时,它们采用一个对象,而当它们获取相同的参数时,它们使用另一个对象。 我们希望使这些函数在设置和获取参数时保持一致。 因此,我们考虑开始开发新的 getter 和 setter,并使用新名称和正确的参数。 无论如何,由于该组件被许多其他应用程序使用,我们无法重命名回调,也无法更改其实现,因此其他 Web 应用程序可能会出现问题。 因此,我们想知道是否有某种方法可以使 Flash 暴露的回调被弃用,以便使用这些方法的人会看到一些警告,并开始用未弃用的版本替换。 预先感谢您的回答!
最佳答案
一旦是 API,就永远是 API。
您不能只是从 API 中删除内容,否则当前使用这些命令的应用程序将会失败。只需添加新的替换 API 并保留旧的 API。在文档中声明旧的命令已被弃用,并且有一个更好的命令。
这方面的一个例子是 jQuery 的 live()
和 delegate()
,它们被 on()
取代。尽管已弃用,live()
和 delegate()
仍然存在于 1.7 上,以适应旧 API,特别是对于那些升级了库但使用过时且未维护的插件的人。
你也可以这样做。您可以为旧 API 展示相同的接口(interface),但在其底层,它使用新的 API 实现,但进行了一些修改。这样,您就不会重复您的代码。
例如,让我们以 jQuery delegate()
、live()
和 on()
为例。这些不是这些方法的实际代码,但我追求的是弃用的概念(除了 delegate()
、live() 之外,我想不出其他弃用的示例)
和 on()
)。
//the three have different set-ups
.live(event,callback);
.delegate(selector,event,callback);
.on(event,selector,callback);
//to avoid multiple underlying implementations
//you can "map" the old API to use the new API's implementation
//while maintaining the old interface and functionality
live = function(event,callback){
$(document).on(event,callback);
}
delegate = function(selector,event,callback){
$(this).on(event,selector,callback);
}
//the new implementation as used by on
on = function(event,selector,callback){
//implementation
}
关于javascript - 如何弃用 flash/flex 公开的 javascript 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10700625/