JavaScript:获取对象的已计算属性
我有两个类似的对象:JavaScript:获取对象的已计算属性,javascript,json,object,Javascript,Json,Object,我有两个类似的对象: var person = { fname: 'John', lname: 'Doe' }; var myObj = { fullName: function () { return person.fname + ' ' + person.lname; } }; 我需要的是这样一个对象–myObj,但经过评估: var someObj = { fullName: 'John Doe' }; 由于myObj将被传递
var person = {
fname: 'John',
lname: 'Doe'
};
var myObj = {
fullName: function () {
return person.fname + ' ' + person.lname;
}
};
我需要的是这样一个对象–myObj
,但经过评估:
var someObj = {
fullName: 'John Doe'
};
由于myObj
将被传递给模板引擎,因此它仍然需要作为JSON,因此我找到了一种使用JSON.stringify
的方法:
function replacer(key, value) {
if (typeof value == 'function') {
return value.call();
}
return value;
}
var someObj = JSON.stringify(myObj, replacer);
虽然这是可行的,但我觉得它相当脆弱,我想对它做一些研究。像
replacer
这样的函数是否有一个特殊的名称,是否有任何库随replacer
的更成熟实现一起提供?您可以使用对象文本中的正确语法使fullName
a
var-person={
fname:'约翰',
名称:“Doe”,
//fullName将在属性访问时进行评估
获取全名(){
返回this.fname+“”+this.lname;
}
};
document.querySelector(“pre”).textContent=JSON.stringify(person,null,4)代码>
您可以使用对象文本中的正确语法将全名
设置为a
var-person={
fname:'约翰',
名称:“Doe”,
//fullName将在属性访问时进行评估
获取全名(){
返回this.fname+“”+this.lname;
}
};
document.querySelector(“pre”).textContent=JSON.stringify(person,null,4)代码>