что это за тип javascript? - PullRequest
0 голосов
/ 05 мая 2020

console.log записывает этот тип данных -

<key1 : value1 , key2 : value2>

синтаксис не похож ни на объект, ни на массив. Итак, что это за тип данных?

вот как воспроизвести.

установить bsv библиотеку

const bsv = require("bsv");
console.log(bsv.PrivateKey.fromRandom())

с терминала узла

> bsv = require("bsv");
> bsv.PrivateKey.fromRandom()

1 Ответ

2 голосов
/ 05 мая 2020

TL; DR

То, что вы видите, - это просто объект, а именно объект PrivateKey из библиотеки bsv. Библиотека bsv имеет настраиваемое представление объекта при входе в console.log в устаревших версиях Node.js.

Подробности

Я наконец смог воспроизвести ваш вывод, получив это из устаревшей копии Node.js:

<PrivateKey: a909d298d55c8fa3afdb641eb46e90cebad4f2d3f5ee0d4149e3bac16f12ee5b, network: livenet>

Как я сказал выше, это просто объект PrivateKey из библиотеки bsv. Причина, по которой вы видите то, что видите, заключается в том, что библиотека bsv использует давно устаревшую функцию Node.js: Node.js console.log, используемую для поиска метода inspect, и если он был присутствует, вызовет этот метод для получения строкового представления объекта для регистрации. bsv имеет метод inspect на PrivateKey, в настоящее время в строке 372 (этот номер строки, конечно, со временем изменится).

Вы увидите это только в (слегка) устаревшие копии Node.js. Я наткнулся на это решение, потому что пробовал его на CodeSandbox, который использовал v10.20.1. Это полезное сообщение было сразу после вывода в CodeSandbox:

(узел: 887) [DEP0079] DeprecationWarning: пользовательская функция проверки объектов через .inspect () устарела

С тех пор я реплицировал это локально, установив Node.js v10.20.1.

с актуальной копией Node.js (v12.16.3 является текущим LTS как Я пишу это, v14.1.0 - текущая версия), Node.js больше не ищет и не использует метод inspect, поэтому вы видите стандартный вывод объекта Node.js в следующих строках:

PrivateKey {
  bn: BN {
    negative: 0,
    words: [
      66428877, 21624768,
      45502785, 19604474,
      35981886, 10091365,
      29744843, 24740201,
      15504496,  1628002,
             0
    ],
    length: 10,
    red: null
  },
  compressed: true,
  network: Network {
    name: 'livenet',
    alias: 'mainnet',
    pubkeyhash: 0,
    privatekey: 128,
    scripthash: 5,
    xpubkey: 76067358,
    xprivkey: 76066276,
    cashAddrPrefix: 'bitcoincash',
    cashAddrPrefixArray: [
      2,  9, 20, 3, 15,
      9, 14,  3, 1, 19,
      8
    ],
    networkMagic: <Buffer e3 e1 f3 e8>,
    port: 8333,
    dnsSeeds: [ 'seed.bitcoinsv.org', 'seed.bitcoinunlimited.info' ]
  },
  publicKey: [Getter]
}

Итак, еще раз: это просто объект, показанный в нестандартном формате библиотекой bsv.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...