这可以用更好的形式重写吗?
function F() { return F.f(); } //wrapping :(
F.f = function() { /* code1 */ }
F.g = function() { /* code2 */ }
F.f = some_other_function
F.g() //this still works :D
我永远不会创建 F 的任何实例。我只是将它用作一种命名空间。
我尝试执行以下操作,但 Fg 没有得到保留(我可以理解原因,但我想要一个很好的解决方法,能够更改 F 的代码和行为,但不能更改 Fg 之类的绑定):
function F() { /* code1 */ } //no wrapping :D, no need for F.f
F.g = function() { /* code2 */ }
F = some_other_function
F.g() //this points to nowhere now :(
编辑:我不想再使用 Ff 作为code1
.
EDIT2:第一段代码是有效的 JS 并且具有我想要的行为。问题是我不喜欢我必须使用 Ff 。我想像第二个代码那样做,但仍然有 Fg 工作。
在运行时的某个时刻,我想更改code1
并保持其他所有内容不变。