======Javascript Objects====== * description : Javascript Object Properties * author : 오션 * email : shlim@repia.com * lastupdate : 2021-04-29 \\ =====The source of this article===== [[https://www.w3schools.com/js/js_object_properties.asp|Javascript Object Properties]] \\ 속성(properties)은 %%JavaScript%% 오브젝트에서 가장 중요한 부분입니다.\\ \\ =====JavaScript Properties===== 속성(properties)은 %%JavaScript%% 오브젝트와 관련된 값입니다.\\ \\ %%JavaScript%% 오브젝트는 정렬되지 않은 속성의 모음입니다.\\ \\ 속성은 일반적으로 변경, 추가 및 삭제할 수 있지만, 일부는 읽기 전용입니다.\\ =====Accessing JavaScript Properties===== 오브젝트 속성에 엑세스하기 위한 구문은 다음과 같습니다:\\ objectName.property // person.age 또는 objectName["property"] // person["age"] 또는 obejctName[expression] // x = "age"; person[x] \\ 표현식(expression)은 속성 이름으로 평가되어야 합니다. \\ ====Example 1==== let person = { firstName: "John", lastName: "Doe", age: 50, eyeColor: "blue" }; document.getElementById("demo").innerHTML = person.firstName + " is " + person.age + " years old."; // John is 50 years old. ====Example 2==== let person = { firstName: "John", lastName: "Doe", age: 50, eyeColor: "blue" }; document.getElementById("demo").innerHTML = person["firstName"] + " is " + person["age"] + " years old."; // John is 50 years old. =====JavaScript for...in Loop===== %%JavaScript%% ''%%for...in%%'' 스테이트먼트는 오브젝트 속성을 반복합니다.\\ ====Syntax==== for (variable in object) { // code to be executed } \\ ''%%for...in%%'' 루프 내부의 코드 블록은 오브젝트의 속성을 반복하면서 각 속성에 대해 한 번씩 실행됩니다.\\ \\ ====Example==== let txt = ""; let person = { fname: "John", lname: "Doe", age: 25 }; let x; for (x in person) { txt += person[x] + " "; } document.getElementById("demo").innerHTML = txt; // John Doe 25 \\ =====Adding New Properties===== 단순히 값을 제공하여 기존 오브젝트에 새로운 속성을 추가할 수 있습니다.\\ \\ person 오브젝트가 이미 존재한다고 가정합니다. 그런 다음 새 속성을 부여할 수 있습니다.\\ ====Example==== let person = { firstName: "John", lastName: "Doe", age: 50, eyecolor: "Blue" }; person.nationality = "English"; document.getElementById("demo").innerHTML = person.firstName + " is " + person.nationality + "."; console.log(person); // {firstName: "John", lastName: "Doe", age: 50, eyecolor: "Blue", nationality: "English"} \\ =====Deleting Properties===== ''delete'' 키워드는 오브젝트에서 속성를 삭제합니다.\\ ====Example==== let person = { firstName: "John", lastName: "Doe", age: 50, eyecolor: "blue" }; delete person.age // or delete person["age"] document.getElementById("demo").innerHTML = person.firstName + " is " + person.age + " years old."; // John is undefined years old. console.log(person); // {firstName: "John", lastName: "Doe", eyecolor: "blue"} \\ ''delete'' 키워드는 속성 값과 속성 자체를 모두 삭제합니다.\\ \\ 삭제 후에, 다시 추가하기 전까지는 삭제한 속성을 사용할 수 없습니다.\\ \\ ''delete'' 연산자는 오브젝트 속성에 사용하도록 설계되었습니다. 변수 또는 함수에는 영향을 주지 않습니다.\\ \\ ''delete'' 연산자는 미리 정의된 %%JavaScript%% 오브젝트 속성에 사용하면 안됩니다. 응용 프로그램이 충돌할 수 있습니다.\\ \\ =====Property Attribute===== 모든 속성에는 이름이 있습니다. 또한 속성에는 값(value)이 있습니다.\\ \\ 값은 속성의 속성 중 하나입니다(The value is one of the property's attributes)\\ \\ 기타 속성(attributes)은 열거 가능(enumerable), 구성 가능(condfigurable) 및 쓰기 가능(writable)입니다.\\ \\ 이러한 속성(attributes)은 속성(property)에 액세스 할 수 있는 방법을 정의합니다 (읽기 가능합니까?, 쓰기 가능합니까?)\\ \\ %%JavaScript%%에서는 모든 속성(attributes)을 읽을 수 있지만, value 속성(attribute) 만 변경할 수 있습니다 (속성(property)이 쓰기 가능한 경우에만).\\ \\ (ECMAScript 5에는 모든 속성 속성을 가져오고 설정하는 방법이 있습니다)\\ \\ =====Prototype Properties===== %%JavaScript%% 객체는 프로토타입의 속성(properties)을 상속받습니다.\\ \\ ''delete'' 키워드는 상속된 속성을 삭제하지 않지만, 프로토타입 속성을 삭제하면, 프로토타입에서 상속된 모든 객체에 영향을 줍니다.\\ {{tag>오션 Javascript Objects Properties}}