gpt4 book ai didi

javascript - 从基本提供者继承时如何防止直接访问属性?

转载 作者:行者123 更新时间:2023-11-30 00:27:15 25 4
gpt4 key购买 nike

这是对 How to inherit from base provider (not the provider factory)? 的跟进.提议的解决方案建议结合使用 angular.extendangular.copy(在 Angular 1.4 上仅使用 angular.merge 即可完成)以将基本提供程序实现复制到所有其他提供程序中。

但这导致了另一个我没想到的问题。通过这种技术,我的提供程序现在可以通过 provider.setX 函数进行配置,并可以直接访问 provider.config.x 属性。

这是一个演示问题的示例:

最佳答案

不太确定您在寻找什么,但是 this.config.x 不是变量而是属性,这就是它可以访问的原因。

如果您希望它不可访问,您需要将其声明为局部变量 var config = {} 在 Controller /服务/工厂/任何您设置它的范围内。因为函数/方法内的局部变量在其作用域之外是不可访问的,除非它们是闭包。

这是您的代码版本,它实例化了一个函数 BaseClient(但不再是提供程序,只是一个常规函数),其中包含一个无法触及的局部变量。同样,我不知道这是否是您想要的,因为我不知道您要解决哪个问题。

http://codepen.io/anon/pen/ZGazqo?editors=101

关于javascript - 从基本提供者继承时如何防止直接访问属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30970343/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com