为什么我会在下面的脚本中得到意外的"("令牌?

Aka*_*ava 3 javascript syntax-error

好吧,我知道我在做什么,我故意想要在我的页面上有很多这样的多个脚本,因为这些脚本不应该在加载时进行评估,但是如果我设置type ="something else"那么我就不会得到智能感知和验证在开发过程中产生麻烦.

<script type="text/javascript" id="s">
{
    //                <- following '(' is unexpected
    update: function (o){
        alert(o);
    }
}
</script>
Run Code Online (Sandbox Code Playgroud)

但是当我这样做时,没问题,

<script type="text/javascript" id="s">
{
    update: function x(o){
        alert(o);
    }
}
</script>
Run Code Online (Sandbox Code Playgroud)

请注意圆括号前的"x".问题是,如果我写"x",则window.x被设置为此方法,并且编写多个脚本会产生更多问题.

当我改成它时,

<script type="text/javascript" id="s">
{
    update: function x(o){
        alert("s-update: " + o);
    },
    method: function x(y){
        alert("s-method: " + y);
    }
}
</script>
Run Code Online (Sandbox Code Playgroud)

然后我得到了意想不到的令牌',' method.

  1. 我想知道如何创建一个JavaScript Object Notation,稍后将通过给出id来执行.请参阅http://jsfiddle.net/MDJbT/上的工作代码,但如果我包含,,我会收到脚本错误,如果我删除,,那么我没有脚本错误,但我的代码没有执行,http://jsfiddle.net/2ykdD/1 /.
  2. 我需要在一个框架中允许我们以完全"id"独立的方式编写脚本,这样就不会有任何全局方法的冲突.两个脚本都具有相同的名称,但逻辑不同.唯一的区别是"id",我知道要引用哪个ID以及调用哪种方法.
  3. 这是复杂框架的一小部分,其中id被自动分配,方法是类层次结构的一部分,它在运行时动态设置,保留范围.
  4. 我根本不希望执行这些脚本.
  5. 我希望以这种方式编写这些脚本,以便Visual Studio和其他编辑器能够精确地显示intellisense并提供有关语法等的错误.
  6. 我将仅通过提供进一步的方法论证,在用户在eval范围内调用的操作上执行这些脚本.

mez*_*eze 5

Javascript想要一个{ ... }表达式的提示:

 ({
    update: function x(o){
        alert("s-update: " + o);
    },
    method: function x(y){
        alert("s-method: " + y);
    }
})
Run Code Online (Sandbox Code Playgroud)