Soru Chrome Dev Tool neden geçersiz tarih olarak __proto__ gösterir?


biliyorum __proto__ (veya standardın bir parçası değil) ve tüm bu kullanımdan vazgeçirir ama baktığımda Geçersiz Tarih dediğimde ne anlama geldiğini merak ediyorum. __proto__ değeri..

var myDate = new Date(1331869050000);

89
2018-03-15 17:49


Menşei




Cevaplar:


"Geçersiz Tarih dediğinde ne anlama geldiğini merak ediyorum."

Bu sadece toString değerinin prototype nesnesi Date yapıcı işlevi.


Date.prototype.toString(); // "Invalid Date"

İsterseniz bunu geçersiz kılabilirsiniz ...

Date.prototype.toString = function() { return "I like turtles." };

var myDate = new Date(1331869050000);
myDate.__proto__; // I like turtles.

Biraz kapalı konu, ama __proto__ ECMAScript'in bir sonraki sürümü için mevcut çalışma taslağında, codename Harmony.

http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts

  • Belirtiler içeren bölüm B.3.1 eklendi __proto__ özellik.

86
2018-03-15 17:56



Sen yakınsın, ama "neden" kısmı hala kayıp, nedeni Date.prototype nesne bir Tarih nesnesi tek başına ama o [[PrimitiveValue]] iç özellik NaN (Tarih nesnelerinde bu dahili özellik depolar zaman değeri), aslında geçerli bir tarihi temsil etmiyor. Date.prototype benzer bir nesnedir new Date(NaN)... - CMS
@ CMS: Anlamlıdır. Bu iyi bir bilgi. İsterseniz cevaplara eklemekten çekinmeyin.
temel olarak, herhangi bir hata yoktur ve Chrome yalnızca gerçek değeri göstermeyen toString () öğesini yansıtır. - Kat Lim Ruiz
Bir de kaplumbağaların aşkı için bir tane - Guy


Yeni bir Date nesnesi yaptığınızı düşünürsek, bunun için endişelenmeyeceğim. Bu kodu denerseniz, nedeni:

var myDate = new Date(1331869050000);
alert(typeof myDate.getMonth != 'undefined')    //true

Bu, Date nesneleri yöntemlerini miras aldığınızı ve aslında Tarih IS tanımladığınızı belirler.

Daha fazla araştırmak isterseniz, bir göz atın. bu sonrası.


2
2017-10-08 00:10





Bir Date örneğinin prototipinin tanımlanmış bir değeri yoktur. Sadece örnek bir değere sahiptir. Sen onu tanımladığında tanımla.


0