[英]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.