如何覆盖 javascript 闭包函数调用
how to override a javascript closure function call
我有以下场景
var bar = (function () {
function foo() {
console.log("Hello World");
}
function bar() {
foo();
}
return bar;
} ());
// override foo before the call
bar();
由于 foo 是从 a 闭包内部返回的 bar 函数调用的,因此可以认为 foo 的行为类似于私有 属性。
我想知道是否可以在调用 bar
之前覆盖 foo
函数?有多少种方式可以实现?
这是我尝试过但无法实现的结果。
var bar = (function () {
function foo() {
console.log("Hello World");
}
function bar() {
foo();
}
return bar;
} ());
var _bar = (function () {
function foo() {
console.log("Hey there");
}
return bar;
} ());
_bar();
I want to know If it is possible to override the foo function before the bar is called? How many ways can it be achived?
不,不是 keep/reuse bar
的当前功能。您可以完全替换 bar
,但这不是特别有用。
foo
对于创建它的上下文是完全私有的。 bar
可以访问它,但没有其他访问权限(好吧,好吧,foo
可以访问 本身 )。无法进入执行上下文 bar
关闭并更改其 foo
绑定,除非明确启用它,而您的示例中没有任何内容。
我有以下场景
var bar = (function () {
function foo() {
console.log("Hello World");
}
function bar() {
foo();
}
return bar;
} ());
// override foo before the call
bar();
由于 foo 是从 a 闭包内部返回的 bar 函数调用的,因此可以认为 foo 的行为类似于私有 属性。
我想知道是否可以在调用 bar
之前覆盖 foo
函数?有多少种方式可以实现?
这是我尝试过但无法实现的结果。
var bar = (function () {
function foo() {
console.log("Hello World");
}
function bar() {
foo();
}
return bar;
} ());
var _bar = (function () {
function foo() {
console.log("Hey there");
}
return bar;
} ());
_bar();
I want to know If it is possible to override the foo function before the bar is called? How many ways can it be achived?
不,不是 keep/reuse bar
的当前功能。您可以完全替换 bar
,但这不是特别有用。
foo
对于创建它的上下文是完全私有的。 bar
可以访问它,但没有其他访问权限(好吧,好吧,foo
可以访问 本身 )。无法进入执行上下文 bar
关闭并更改其 foo
绑定,除非明确启用它,而您的示例中没有任何内容。