自执行函数作为对象文字的属性

Self Executing functions as properties of object literals

本文关键字:文字 属性 对象 执行 函数      更新时间:2023-09-26

我正在使用UglifyJs缩小一些代码,但我遇到了问题。 如果我有一个自执行函数作为对象文字的属性,那么在缩小时它会简化为一个函数。

var o = {
    c : 1,
    t : (function(){
        return 'this worked';
    }())
};
uglifyjs t.js > u.js
var o={c:1,t:function(){return"this worked"}()};

大概不推荐这种做事方式是有原因的。 这是什么/为什么?而且,如果有解决方法,我很想知道,因为客户端代码宁愿使用属性。

谢谢。

它返回了相同的自执行函数,没有周围的括号......所以我看不出问题...

请注意,JSON 不支持在其内容中声明的函数。你可以使用它,因为它仍然是javascript代码,但你不能序列化它......等。