没有键值的对象作为方法参数

rol*_*oll -1 javascript

我正在与棱镜棱柱合作,在那prismaObjectType我看到了一些奇怪的东西。这是一个非常基本的例子。

简单的功能,demo(p) p应该是一个对象

            function demo(p) {
              console.log(p);
              console.log(p.normal);
              console.log(p.normal());
            }
Run Code Online (Sandbox Code Playgroud)

我将传递一个键normal和一个函数作为值

        demo({a:"a", normal: function(){console.log("normal")},b:"b"});
Run Code Online (Sandbox Code Playgroud)

它登录控制台

            {a: "a", normal: ƒ, b: "b"}
            ƒ (){console.log("normal")}
            "normal"
Run Code Online (Sandbox Code Playgroud)

奇怪的是我正在传递一个没有单词函数也没有键的方法

            demo({a:"a",   weird(){ console.log("it is weird") }   ,b:"b"});    

            // console

            {a: "a", weird: ƒ, b: "b"}
            ƒ weird(){console.log("it is weird")}
            it is weird             
Run Code Online (Sandbox Code Playgroud)

{a:"a", the weird part >>>>> weird(){console.log("it is weird")} <<< ,b:"b"}

这种做法的名字是什么?任何意见?

jun*_*var 5

这是预期的JS行为。在ecma 2015中以简写形式引入(mdn参考

基本上:

var o = {
  property(parameters) {}
};
Run Code Online (Sandbox Code Playgroud)

是短的

var o = {
  property: function(parameters) {}
};
Run Code Online (Sandbox Code Playgroud)