JavaScript问题,我不知道错那了,望解答

问题相关代码,请勿粘贴截图

<script>
        var value = {};
        Object.defineProperties(value , {
            'value1' : 1,
            'value2' : {
                value3 : 2,
                value4 : 3
            },
            'valuelist' : [
                value5 = 4,
                value6 = 5,
                valuen = 'n',
                {
                    boolean : true
                }
            ]
        });
        document.write(JSON.stringify(value , null , ' '));
    </script>
    <script>
        var obj = {};
        Object.defineProperties(obj , {
            'property1': {
                value: true,
                writable: true
            },
            'property2': {
                value: 'Hello',
                writable: false
            }
            // etc. etc.
        });
        document.write(JSON.stringify(obj))
    </script>
    <script>
        var a = {};
        Object.defineProperties(a , {
            'value1' : 1
        });
        document.write(JSON.stringify(a))
    </script>
运行结果及报错内容

第一段和第三段js报错,说调用方法那行错了,我看了半天也没明白我错那了
还有书上说这个可以打印出来,但是为什么第二段打印内容为空呢


 var a = {};
Object.defineProperties(a , {
  'value1' : {value:1}
});

document.write(JSON.stringify(a));

代码应该是这个形式的。 defineProperties 的第二个参数是一个对象,对象的每个属性也是一个对象,包含value、configurable、enumerable、writable、get、set这几个属性。具体可参考 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperties

至于你说的书上的,那大概是书上写的不对或者你理解的不太对吧。