在没有属性名称的javascript对象中定义函数是否有效

时间:2015-11-25 14:17:11

标签: javascript

我有一些问题要让网站在Internet Explorer(IE9)中工作,我发现我们已经通过以下方式在javascript对象中定义了一个函数:



var test = {
    a : function(){alert(123);},
    blafasl(){$("#test").text("456");},
    b : function(){alert(678);},
}

test.blafasl();
//test.b();

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id='test'></div>
&#13;
&#13;
&#13;

在Chrome和Firefox中,代码正在运行,但在IE9中会产生错误消息。

&#39; blafasl&#39;的定义是什么?有效(以及它是如何工作的)? 或者IE出现错误是否正确?

当我将blafasl定义更改为:时,它适用于Chrome,Firefox和IE blafasl: function(){....},

我发现了这个:http://www.bryanbraun.com/2014/11/27/every-possible-way-to-define-a-javascript-function但它不包括我的问题......

问候 马丁

PS:这是上述代码的fiddel:http://jsfiddle.net/zjobwd89/2/

1 个答案:

答案 0 :(得分:-1)

它的ES6对象文字: https://github.com/lukehoban/es6features#enhanced-object-literals

你可以这样写:

var obj = {
    // __proto__
    __proto__: theProtoObj,
    // Shorthand for ‘handler: handler’
    handler,
    // Methods
    toString() {
     // Super calls
     return "d " + super.toString();
    },
    // Computed (dynamic) property names
    [ 'prop_' + (() => 42)() ]: 42
};