繁体   English   中英

从javascript对象调用函数

[英]Calling a function from a javascript object

我一直在使用/从这样的对象中调用函数:

var object = { 
    fn: function(){ 
        alert('i can see it!'); 
    }
}; 
object.fn(); // it works

但我不知道如何从仅{}对象调用函数。

{
    fn: function() {
        alert('i can\'t see it');
    }
}

fn(); // wont work ?

我想知道为什么这不起作用? 有办法使它起作用吗?

您的第二个示例是无效的语法。 {}被解释为带有标签和无效函数的语句,因为它没有名称。

如果您想这样内联,则需要更多类似以下内容:

({
    fn: function() {
        alert('now i can see it');
    }
}).fn();

现在,您正在创建对象,因为{}不再是块语句,而是对象文字语法。 然后,您立即访问定义的fn属性。

当然,这没有什么意义,但是它更接近您的工作。

fn在块内,而不在对象内。 仅在块内传递名称值,即{}不起作用。 或至少给标签加上一些标签。

这样称呼它: object.fn(); 正如@BlueSkies所说,第二个示例将无效,因为它的语法无效。 您无法在JavaScript中做到这一点。 如果像大卫在评论中说的那样命名该对象,则它将起作用。 您不能从匿名对象中调用函数。

这是一个名为e的对象的示例: http : //jsfiddle.net/dhF5k/

这是定义“独立”功能(没有包装对象)的正确语法:

var fn = function () { ... };
function fn() { ... };

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM