我正在与棱镜棱柱合作,在那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"}
这种做法的名字是什么?任何意见?
这是预期的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)
| 归档时间: |
|
| 查看次数: |
39 次 |
| 最近记录: |