javascript函数参数位置

标签 javascript function

如何使用 2 种方法(alert 和 console.log)编写函数(对象)以便能够像这样使用它:

fname("text").alert //-now text is alerted;
fname("text").cons //-now text shows in console log. 

执行方式并不重要。我知道它必须是自调用函数,但我做不到。我不想这样使用它 - fname.alert("text")。

问候语 克里斯

最佳答案

不可能以任何理智的方式在任何地方都有效。您发布的示例将要求您为这些属性定义一个访问器——这只适用于现代 JS 引擎。

无论如何,这是实际执行此操作的代码。 但请不要在任何实际应用中使用它!查看最后一个代码块以获得更好的解决方案

function fname(message) {
    var obj = {};
    Object.defineProperty(obj, 'alert', {
        get: function() {
            alert(message);
        }
    });
    Object.defineProperty(obj, 'cons', {
        get: function() {
            console.log(message);
        }
    });
    return obj;
}

这是有效的,因为 fname('hello').alert 会导致执行 alert 属性的 getter 函数——虽然这样的函数通常应该返回一个value 没有什么可以阻止它做一些事情,比如显示 alert() 消息。


不过,您可以以一种适用于任何地方的方式实现的是这样的:

fname('text').alert();
fname('text').cons();

可以这样做:

function fname(message) {
    return {
        alert: function() {
            alert(message);
        },
        cons: function() {
            console.log(message);
        }
    }
}

关于javascript函数参数位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13648882/

相关文章:

javascript - 从 JSON 中删除元素会留下一个未定义的元素

javascript - Reactjs 试图合并数组

javascript - 突出显示当前菜单项?

python - 有没有办法镜像Python函数?

javascript - 有什么方法可以实现 "optimize"这个简单的函数吗? (我没有遵循最佳实践吗?)

c - 在函数中返回 char*

c++ - 函数在 main 和 library 中调用不同的行为

javascript - 如何在 Odoo 中写入网站 <textarea> 的值?

c - 函数中全局变量的malloc和realloc

javascript - 任务 "default"不在您的 gulpfile 中