Yerleşik JavaScript nesneleri ve yapıcılarla oynamak, biraz tuhaf bir şey fark ettim.Ne zaman * dahili * üzerinde yeni çalışma * kullanılmıyor?
Bazen, new
olmadan bir yapıcıyı arayarak yeni nesneler almak mümkündür. Örneğin:
> new Array(1,2,3,4)
[1, 2, 3, 4]
> Array(1,2,3,4)
[1, 2, 3, 4]
Ancak bazen bu işe yaramazsa:
> Date()
"Thu Jun 05 2014 00:28:10 GMT-0600 (CST)"
> new Date()
Date 2014-06-05T06:28:10.876Z
ECMAScript şartnamede yerde tanımlanmış olmayan yeni yapıcı yerleşik fonksiyonların davranış mı? Bu davranış aslında yararlı olduğunu unutmayın; Bir dizinin seyrek olmayan bir kopyasını Array.apply(arr)
'u arayarak yapabilirim, ancak çapraz platform olsaydı bunu yapmanın rahatlığını hissederdim.
benzer cevabı olan bir diğer ilgili soru: http://stackoverflow.com/questions/1978049/what-values-can-a-constructor-return-to-avoid-returning-this –
Not: 'Tarih () === new Tarih(). toString() ' –
[JavaScript'te Array (1) ve new Array (1) arasındaki fark nedir?] (http://stackoverflow.com/questions/5827008/whats-the- array1-and-new-array1-in-javascript arasındaki fark) – Habib