質問

なぜこれは何も生み出すのですか?

console.log(JSON.stringify(function(){console.log('foobar');}));
.

役に立ちましたか?

他のヒント

JSONは関数を表す手段はありません。これは、言語間で単純さと互換性のために設計されたデータフォーマットです(そして関数は最後に相互言語互換性がある最後のものです)。 json.stringify

変換中に未定義、関数、またはXML値が発生した場合は、省略(オブジェクトに見つかったとき)またはNULLに検閲されます(配列に見つかった場合)。

それをすることはできませんが、サードパーティのライブラリがいくつかあります。 https://www.npmjs.com/package/json-fn

JSON.stringifyを使用して関数とネイティブオブジェクトを変換する場合は、2番目の引数としてコンバータ関数を渡すことができます。

const data = {
  fn: function(){}
}

function converter(key, val) {
  if (val && typeof val === 'function' || val.constructor === RegExp) {
    return String(val)
  }
  return val
}

console.log(JSON.stringify(data, converter, 2))
.

結果を省略したい場合は、コンバータ関数からundefinedを返します。

3番目のパラメータは、出力にインデントするスペース数です(オプション)。

yourFunctionName.toString();は関数をStanpingする

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top