javascript – 使用嵌套函数和默认函数定义函数

前端之家收集整理的这篇文章主要介绍了javascript – 使用嵌套函数和默认函数定义函数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
请考虑以下代码
function test() {
    this.foo = function() {
        console.log('foo');
        return;
    }

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

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

上面的代码工作正常,以防我需要在动作测试中调用动作foo或bar.但是动作测试本身应该是一个可调用函数.我认为如果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'
原文链接:https://www.f2er.com/js/158521.html

猜你在找的JavaScript相关文章