Javascript: Nem todos os objetos nativos apresentam construtores ou propriedades acessíveis. Qual das alternativas a seguir representa um código válido na manipulação de objetos nativos?
Nem todos os objetos nativos apresentam construtores ou propriedades acessíveis. Qual das alternativas a seguir representa um código válido na manipulação de objetos nativos?
a) new Math(3.14159)
b) Math().PI
c) Date.now
d) new Date(86400)
e) Date.milissenconds = 86400
Analisando as alternativas (JavaScript):
-
a)
new Math(3.14159): inválido.Mathnão é construtor (não se usanew Math()), é apenas um objeto nativo com métodos e constantes. -
b)
Math().PI: inválido.Mathnão é função, portantoMath()gera erro. O correto seria acessar diretamenteMath.PI. -
c)
Date.now: é uma referência válida ao método estáticonow, porém não executa o método (faltam parênteses). Para obter o timestamp, seriaDate.now(). -
d)
new Date(86400): válido.Dateé um construtor, e pode receber um número (timestamp em milissegundos desde 01/01/1970). Assim,new Date(86400)cria um objetoDatecorrespondente a 86.400 ms após a época. -
e)
Date.milissenconds = 86400: inválido. A propriedade está escrita errado (“milissenconds”) e, além disso, não existe essa propriedade nativa padrão doDatepara esse propósito.
Logo, o único código claramente válido na manipulação de objeto nativo (criando instância corretamente) é o da alternativa d.
Alternativa correta: (d).