如果我在浏览器中打开它:
<!DOCTYPE html>
<html>
<head>
<title>Testing stringify</title>
</head>
<body>
<script>
var obj = {};
var arr = [];
arr.push(1,2);
alert(arr); // 1,2
Object.defineProperty(obj, "name", {
value:arr
});
alert(obj.name); // 1,2
alert(JSON.stringify(obj)); // {}
</script>
</body>
</html>
它会输出我在评论中写的内容。我不明白为什么arr
不包含在输出JSON字符串中。我是否需要在defineProperty()
中的描述符对象上定义一些其他属性?我做错了什么?
答案 0 :(得分:3)
您所制作的财产不可枚举。在描述符中设置enumerable: true
,它就可以工作。
var obj = {};
var arr = [];
arr.push(1, 2);
console.log(arr); // 1,2
Object.defineProperty(obj, "name", {
value: arr,
enumerable: true,
});
console.log(obj.name); // 1,2
console.log(JSON.stringify(obj)); // {}
&#13;