Javascript 对象,其值不作为方法参数的键
我正在与prisma nexus合作,在Prismao对象类型中,我看到了一些奇怪的东西。 一个非常基本的例子是这样的 简单的函数,demop应该是一个对象Javascript 对象,其值不作为方法参数的键,javascript,Javascript,我正在与prisma nexus合作,在Prismao对象类型中,我看到了一些奇怪的东西。 一个非常基本的例子是这样的 简单的函数,demop应该是一个对象 function demo(p) { console.log(p); console.log(p.normal); console.log(p.normal()); } 我将传递一个键法线和一个函数作为值
function demo(p) {
console.log(p);
console.log(p.normal);
console.log(p.normal());
}
我将传递一个键法线和一个函数作为值
demo({a:"a", normal: function(){console.log("normal")},b:"b"});
它登录到控制台
{a: "a", normal: ƒ, b: "b"}
ƒ (){console.log("normal")}
"normal"
奇怪的是,我传递的方法没有单词function,也没有键
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
{a:a,奇怪的部分>>>>奇怪的{console.logit是奇怪的}这是对象上函数属性的简写语法。基本上,以下两个是等效的:
// traditional syntax
const foo = {
bar: function bar(msg) { console.log(msg); }
};
// shorthand syntax
const foo = {
bar(msg) { console.log(msg); }
};
这是预期的JS行为。它在ecma 2015中作为速记引入 基本上:
var o = {
property(parameters) {}
};
是的缩写
var o = {
property: function(parameters) {}
};