是否可以在JSON
对象中嵌入ES6箭头功能?
示例,以下数据格式是否会被视为“有效”?
{
function:{() => {console.log("executed")}}
}
答案 0 :(得分:4)
首先,没有JSON对象这样的东西。 JSON是一种文本格式,而不是对象格式。有JSON文本和Javascript对象。这两者完全不同。
根据JSON specification,JSON文本格式不接受函数。 JSON格式字符串中的值在本规范中以速记形式描述如下:
value = false / null / true / object / array / number / string
这些是JSON中允许的类型。
另一方面,Javascript对象确实可以具有作为函数的属性。由于人们经常混淆这两个单独的东西,我不确定你的意思,虽然你引用的是JSON,它是一种文本格式,不接受函数。
Javascript对象可以有这样的函数:
let obj = {
somePropertyName: function() { console.log("hi")}
};
然后可以被称为:
obj.somePropertyName();
ES6语法还允许一些其他方式来声明函数,但想法是一样的。最终在对象上指向一个指向函数的命名属性。使用带有ES6语法的箭头函数:
let obj = {
somePropertyName: () => { console.log("hi")}
};
重要的是要意识到,当使用箭头函数时,调用该函数时this
的值将不会设置为对象本身,因为根据定义,箭头函数使用{{{{{{ 1}}和this
不是按照正常函数定义调用方法的方式设置的。