gpt4 book ai didi

javascript - javascript中的复杂对象

转载 作者:搜寻专家 更新时间:2023-10-31 23:23:27 24 4
gpt4 key购买 nike

我正在为 Node 摆弄一个名为 bcoin 的库。运行以下代码:

  chain.on('block', function(block) {
console.log('Connected block to blockchain:');
block.txs.forEach(function(t) {
t.inputs.forEach(function(i) {
console.log(typeof i, i);
console.log(JSON.stringify(i));
});
});
});

这是我得到的响应:

Connected block to blockchain:
object { type: 'coinbase',
subtype: null,
address: null,
script: <Script: 486604799 676>,
witness: <Witness: >,
redeem: null,
sequence: 4294967295,
prevout: <Outpoint: 0000000000000000000000000000000000000000000000000000000000000000/4294967295>,
coin: null }
{"prevout":{"hash":"0000000000000000000000000000000000000000000000000000000000000000","index":4294967295},"script":"04ffff001d02a402","witness":"00","sequence":4294967295,"address":null}

请注意,即使我们打印 i 时显示了属性 type,但当我们 JSON.stringify 时该属性并不存在> 对象。如果我尝试 console.log(i.type) 我会得到 undefined

这怎么可能?什么是调试对象正在发生的事情的好方法?

最佳答案

JSON.stringify 将仅包含不是函数的可枚举属性。

因此,如果您定义一个属性并将其设置为不可枚举,则它不会成为 JSON 字符串的一部分。

var obj = {
a: 'test'
};

// Non-enumerable property
Object.defineProperty(obj, 'type', {
enumerable: false,
value: 'Test'
});

// Get property
Object.defineProperty(obj, 'type2', {
get: function(){
return 'Test 2'
}
});


console.log(JSON.stringify(obj), obj);
console.log(obj.type, obj.type2)

enter image description here

关于javascript - javascript中的复杂对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46903714/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com