【发布时间】:2021-02-20 21:22:56
【问题描述】:
在 JavaScript 中,函数中可以包含函数。
function cow() {
function moo() {
console.log("moo");
}
moo();
}
cow();
是否可以动态添加嵌套函数?像这样?
function cow() {
moo();
}
cow.moo = function () {
console.log("moo1");
};
cow();
【问题讨论】:
-
是的,我想是的。尝试从
cow中删除moo();,并使用bob = new cow()创建新奶牛。然后,您可以使用bob.moo()在bob上调用moo。 -
不。你想做什么?
-
不一样。在第二种情况下,您向对象
cow添加一个属性moo,它是一个函数。函数是 JavaScript 中的对象。 -
@evolutionxbox 这两个代码块都不能完成这项工作。第一个代码块创建一个函数
moo,其作用域为函数cow。第二个代码块创建一个“静态”函数作为cow的属性。这些都不会在cow.prototype上创建实例方法。 -
您可以创建像
const outer = (func) => () => func(), inner = outer(() => console.log("moo")); inner();这样的柯里化函数,但如果没有更多上下文,无法判断这是否适用于此。
标签: javascript nested nested-function