DEV Community

Uriel dos Santos Souza
Uriel dos Santos Souza

Posted on • Edited on

3 2

Peculiaridades do JS. Que não são erros! Nem esquisitice! - Objetos

JS é uma linguagem interessante!

Além das coisas já bem conhecidas(espero)!
Que funções são valores!
O fato de funções serem tratadas como valores!
Funções serem cidadãos de primeira classe! Entre outras coisas da parte funcional do JS!

Mas hoje quero mostrar algo sobre que tudo no JS é objeto!

function teste(){}

teste['testeinterno'] = 'oi'
console.log(teste.testeinterno) // 'oi'

for(chave in teste){
  console.log(chave) 
}
//"testeinterno"


Enter fullscreen mode Exit fullscreen mode

Colocamos uma propriedade na função?
Como assim?
Isso acontece pq tudo no JS é objeto.
Inclusive uma função!
E como um bom objeto no JS você pode colocar propriedades nele!
Não é um erro! Nem uma esquisitice.

Vamos ver um array! Que é um objeto :P

const arr = ['testar', '09']
//array normal! 

arr['oi'] = 'neh'
arr[1.5] = 'hello'
arr[-1] = 'bah'
// como ele é objeto! Podemos por propriedades //e valores!

for(chave in arr){
  console.log(chave) 
}
//"0" "1" "oi" "1.5" "-1"

console.log(arr) // ["testar", "09"]
console.log(arr.oi) // 'oi'
console.log(arr[-1]) // 'bah'

console.log(arr[-1] + arr[1.5]) //"bahhello"

Enter fullscreen mode Exit fullscreen mode

Isso e outras coisas podem aparecer pra você em algum momento!
Por enquanto é isso!
Em breve quero escrever mais textos sobre isso e complementar este!
Brinque no JSBIN

https://jsbin.com/fuxazuniqo/1/edit?js,console

https://www.youtube.com/watch?v=n5uiJr-v0KQ
https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Guide/Working_with_Objects

Qodo Takeover

Introducing Qodo Gen 1.0: Transform Your Workflow with Agentic AI

Rather than just generating snippets, our agents understand your entire project context, can make decisions, use tools, and carry out tasks autonomously.

Read full post

Top comments (0)

Need a better mental model for async/await?

Check out this classic DEV post on the subject.

⭐️🎀 JavaScript Visualized: Promises & Async/Await

async await