왜이 제품이 생성되지 않습니까? JSON은 모든 기능을 캐릭터 라인 화 할 수함수식을 문자열로 변환 할 수없는 이유는 무엇입니까?
console.log(JSON.stringify(function(){console.log('foobar');}));
왜이 제품이 생성되지 않습니까? JSON은 모든 기능을 캐릭터 라인 화 할 수함수식을 문자열로 변환 할 수없는 이유는 무엇입니까?
console.log(JSON.stringify(function(){console.log('foobar');}));
, 그것은 그들에게 단지 같은 undefined
또는 null
값을 처리합니다. 정확한 알고리즘은 EcmaScript 5.1 §15.12.3에서 확인할 수 있습니다 (description at MDN 참조). 문자열로 변환하여 함수식을 캐릭터 라인 화 할 수 물론,
console.log("" + function(){console.log('foobar');})
안녕하세요 Bergi, 웹 작업자에게 내 캐스팅 된 기능을 전달했지만 어떻게 js로 다시 변환합니까? JSON.parse? –
@TedFitzpatrick'eval'. 물론 그것은 자유 변수가없는 함수에서만 작동합니다. – Bergi
Bergi에게 감사드립니다. 내부 함수 문장이있는 생성자 함수 표현식을 전달합니다. 내가 eval()을 얻을 때 "예상치 못한 토큰 (".) 주변의 "function() {}"블록을 제거하려고 시도했지만 오류가 계속 발생했습니다 ... eval'd 문자열에 함수가 포함될 수 있습니까? –
JSON을 시도하지만 당신을
는 기능을 표현하는 수단이 없습니다. 언어 간 단순성 및 호환성을 위해 설계된 데이터 형식입니다 (함수는 언어 간 호환이 가능한 마지막 요소입니다). JSON.stringify 용 문서에서(이 개체에서 발견 될 때) 또는 (경우에 그것을 null로 검열
정의되지 않은 경우, 기능 또는 XML 값은 어느 생략 변환시 발생 배열에 있습니다).
당신은 그렇게 할 수는 없지만, 당신이 도움이되는 몇 가지 타사 라이브러리가있다처럼, 그 : https://www.npmjs.com/package/json-fn
http://stackoverflow.com/questions/3685703/javascript-stringify-object-including- member-of-type-function – dmp