2012-09-29 18 views
10

Bu neden bir şey üretmiyor? JSON de tüm fonksiyonları stringify edemezNeden bir işlev ifadesini dizgileştiremiyorsunuz?

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

http://stackoverflow.com/questions/3685703/javascript-stringify-object-including- üyeler-type-function – dmp

cevap

21

, onlara tıpkı undefined veya null değerlerini ele alır. Tam algoritmayı EcmaScript 5.1 §15.12.3 adresinden kontrol edebilirsiniz, ayrıca bkz. description at MDN. bir dizeye onları döküm yoluyla işlev ifadesini stringify olabilir elbette,

console.log("" + function(){console.log('foobar');}) 
+0

Merhaba Bergi, benim casted işlevimi web çalışanıma ilettim, ancak js'ye nasıl geri dönüş yapabilirim? JSON.parse? –

+0

@TedFitzpatrick' eval'. Elbette sadece serbest değişkenler olmayan fonksiyonlar için çalışır. – Bergi

+0

Teşekkürler Bergi. Kendisinin dahili işlev ifadelerine sahip bir yapıcı işlev ifadesini geçiyorum. Değerlendirirken() "beklenmedik jetonu (".. ") Çevreleyen" function() {} "bloğunu kaldırmayı denedim ancak yine de hatayı almayı denedim ... string'ler değerlendirmeler içerebiliyor mu? –

4

JSON deneyin Ancak sizi

bir işlevi temsil etmek donanıma sahip değildir. Bu diller arasında basitlik ve uyumluluk için tasarlanmış bir veri formatıdır (ve bir işlev çapraz-dil uyumlu olacak son şeydir). JSON.stringify için Dokümanlar

: (bir nesne bulunduğunda) veya (ne zaman boş olarak sansürlenmiş

tanımlanmamış ise, fonksiyon veya bir XML değeri ya da atlanmıştır dönüşüm sırasında da karşılaşılır bir dizide bulunur).

İlgili konular