gpt4 book ai didi

javascript - 定义具有嵌套函数和默认函数的函数

转载 作者:数据小太阳 更新时间:2023-10-29 04:41:55 25 4
gpt4 key购买 nike

考虑以下代码:

function test() {
this.foo = function() {
console.log('foo');
return;
}

this.bar = function() {
console.log('bar');
return;
}
}

var action = new test();
action.foo(); //prints 'foo'

如果我需要在操作 test 中调用操作 foobar,上面的代码可以正常工作。然而,操作 test 本身应该是一个可调用函数。我认为如果 JavaScript 让我创建这样的东西会很酷(见下文)但是,正如预期的那样,它说:

TypeError: action is not a function

function test() {
this.foo = function() {
console.log('foo');
return;
}

this.bar = function() {
console.log('bar');
return;
}

return function() {
console.log('default');
return;
}();
}

var action= new test();
action(); //prints 'default'
action.bar(); //printf 'bar'

有没有可能实现类似的东西?

最佳答案

这是可能的。只需在内部创建一个函数并将其他属性直接添加到函数对象即可:

function test() {

var result = function () {
console.log('default');
};

result.foo = function() {
console.log('foo');
return;
}

result.bar = function() {
console.log('bar');
return;
}

return result;
}

var test = new test();
test(); //prints 'default'
test.bar(); //printf 'bar'

关于javascript - 定义具有嵌套函数和默认函数的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37330583/

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