[JavaScript] Object2

작성자
진행일시
2021/07/22
이메일
// Objects // one of the JavaScript`s data types // a collection of related data and/or functionality. // Nearly all objects in JavaScirpt are instances of Object // object = {key : value};의 복합체 //Object를 만드는방법 2가지 //1.Literals and properties const obj1 = {}; //'object literal' syntax const obj2 = new Object(); //'object constructor' syntax // function print(person){ console.log(person.name); console.log(person.age); } //개선 // Object 생성 const ellie= { name : 'ellie', age : 4}; print(ellie); //with JavaScript magic (dynamically typed language) //can add properties later ellie.hasJob = true; console.log(ellie.hasJob); // can delete properties later delete ellie.hasJob; console.log(ellie.hasJob); //2. Computed Properties (계산된 properties) // key should be always String console.log(ellie.name); console.log(ellie['name']); ellie['hasJob'] = true; console.log(ellie.hasJob); function printValue(obj,key) { console.log(obj[key]); } printValue(ellie, 'name'); printValue(ellie, 'age'); //3. Property value shorthand const person1 = {name : 'bob', age: 2}; const person2 = {name : 'steve', age: 3}; const person3 = {name : 'dave', age: 4}; const person4 = new Person('aiden', 29); console.log(person4); //4. Constructor Function function Person(name, age) { //this= {}; this.name = name; this.age = age; //return this; } //5. in operator : property existence check(key in obj) // 해당하는 obj안에 key가 있는지 없는지 확인 console.log('name' in ellie); console.log('age' in ellie); console.log('random' in ellie); console.log(ellie.random); //6. for.. in vs for..of //for(key in obj) console.clear(); for( key in ellie) { console.log(key); } //for (value of iterable) const array = [1,2,4,5]; for(let i = 0; i <array.length; i++){ console.log(array[i]); } for(value of array) { console.log(value); } // 7 Fun cloning // Object.assign(dest, [obj1, obj2, obj3...]) const user = { name : 'ellie', age : 20}; const user2 = user; user2.name = 'coder'; console.log(user); // old way const user3 = {}; for (key in user) { user3[key] = user[key]; } console.clear(); console.log(user3); //new way const user4 = {}; Object.assign(user4, user); console.log(user4); const user5 = Object.assign({}, user); console.log(user5); // another exmaple const fruit1 = {color : 'red'}; const fruit2 = {color : 'blue', size : 'big'}; // fruit1보다 fruit2가 뒤에있어서 fruit2에 값이 fruit1에 덮어씌운다. 즉 뒤에있는 인자가 앞에있는 인자의 값을 덮어씌움 const mixed = Object.assign({}, fruit1, fruit2); console.log(mixed.color); console.log(mixed.size);
JavaScript
복사