Bir değeri, ilkel veya kutulu olup olmadığını belirlemek için typeof
kullanabilirsiniz.Bir değerin ilkel mi yoksa kutulu mu
düşünün: Object.prototype.toString
ile birlikte
typeof "foo"; // "string"
typeof new String("foo"); // "object"
biz
var toString = Object.prototype.toString;
var is_primitive_string = function(s) {
return toString.call(s) === "[object String]" && typeof s === "string";
};
var is_boxed_string = function(s) {
return toString.call(s) === "[object String]" && typeof s === "object";
};
herhangi kullanım durumları bu iki fonksiyon için var mıdır aşağıdaki iki işlevi tanımlayabilirsiniz? (Veya Number
,, vb için benzer işlevler).
Bu sorunun arkasındaki kavram aşağıdaki Comment by T.J.Crowder'dan geldi.
Sahip olduğumuz bir değerin ilkel mi yoksa kutulu mu olduğunu hiç düşünmemeli miyiz?
Kutulu değerlerin ilkellere kıyasla "referans olarak geçirilmiş" olması, bazı ilginç sonuçlara neden olabilir. – Raynos
@Raynos, ne sonuçları? Primitifler değişmezdir, bu yüzden ilkel değerler için geçiş değeri ile başvuru kaynağı arasında gözlemlenebilir bir fark olmamalıdır. Tek bir bellek konumunda (Rhino'da olduğu gibi) ve taklit edilmiş bir sendikada bulunan bir değişmez nesnenin bir referansı olarak geçip geçmediğini algılayabilecek herhangi bir program olduğunu düşünmüyorum. çoğu diğer tercümanlarda olduğu gibi kopyalanır. –