有没有办法在XBL中创建私有方法?
- 更新
MDN 上唯一的文档没有提到私有方法,但它是一个并不总是完整的 wiki。
您的问题的答案是 XBL 不支持私有方法。但是,这并不意味着您只需公开公开您的公共方法并接受这种情况就可以了。您可以使用一些选项来帮助传达方法是私有的或帮助阻止使用或修改它们:
在方法名称中使用下划线:
Mozilla 建议使用下划线将方法和字段标记为私有。此外,许多 JavaScript 库在开发人员希望标记为私有的方法中使用下划线。尽管新手开发人员可能会忽略这一点并仍然调用该方法,但大多数对 JavaScript 库、Firefox 扩展开发或一般 JavaScript 有一些基本经验的人应该知道当您的方法前面有一个下划线时您的意思。
使用继承隐藏私有方法:
眼不见,心不烦。
在某些语言中,一系列子类共有的功能通常会移至基本抽象类。在子类中,继承的方法不会在子类代码中看到。
虽然这绝对不是“私有的”,但您可以将您的“私有”方法封装在 XBL 绑定中,并将您的公共方法放在扩展父绑定的 XBL 绑定中。继承是 XBL 最强大的功能之一,这有助于保护您的私有方法不被使用,因为它们不会出现在开发人员直接与之交互的 XBL 绑定中。
然后,您可以在描述“私有”功能的目的并且不打算公开的父级中添加大量注释。
请记住,即使您可以将方法标记为私有,这仍然不会阻止有决心的人。人们仍然可以简单地将方法标记为“公共”并使用它。
这是关于 XBL 的文档,它断言方法是私有的,并且还讨论了继承: https ://developer.mozilla.org/en/XUL_School/Custom_XUL_Elements_with_XBL