JavaScript에서 객체는 키-값 형식의 속성을 포함합니다. 객체를 참조로 사용하여 속성 이름을 사용하여 객체의 모든 속성에 액세스할 수 있습니다.
때때로 우리는 객체에 존재하지 않는 객체 속성에 접근하려고 합니다. 이 경우 정의되지 않은 값을 얻습니다. 다음 예를 통해 이해해 보자.
아래 예에서는 객체를 생성하고 몇 가지 속성을 추가했습니다. 또한 일부 중첩 속성을 추가했습니다. 그런 다음 "prop4"의 중첩 속성인 "prop5" 속성에 액세스하려고 합니다. 사용자는 출력에서 해당 값을 관찰할 수 있습니다.
또한 "prop6" 속성에 액세스하려고 시도하지만 개체에 존재하지 않기 때문에 개체가 정의되지 않은 상태를 반환합니다.
으아악따라서 특정 속성이 객체에 존재하지 않을 때마다 해당 속성이 객체에 존재하지 않는다는 오류가 발생할 수 있습니다.
여기에서는 개체 속성에 액세스하는 동안 오류를 발생시키는 다른 방법을 배웁니다.
"in" 연산자를 사용하면 객체에 속성이 존재하는지 확인할 수 있습니다. "in" 연산자의 왼쪽 피연산자로 키를 사용하고 오른쪽 피연산자로 객체를 사용할 수 있습니다.
객체에 속성이 존재하는지 확인할 수 있습니다. 그렇지 않으면 오류가 발생할 수 있습니다.
사용자는 다음 구문에 따라 "in" 연산자를 사용하여 개체 속성에 액세스하는 동안 오류를 발생시킬 수 있습니다.
으아악위 구문에서 key는 객체에 존재하는지 확인하는 데 사용되는 속성입니다.
아래 예에서는 table_obj 객체를 생성하고 일부 키-값 쌍을 추가합니다. get_property_value()라는 함수는 객체에 속성이 존재하는지 확인합니다. 객체에 속성이 존재하는 경우 속성 값이 반환됩니다. 그렇지 않으면 오류가 발생합니다.
try-catch 블록에서는 오류를 포착합니다. 출력에서 사용자는 get_property_value() 함수가 속성에 대해 정의되지 않은 값을 반환하는 대신 "table_price1" 속성에 대해 오류를 발생시키는 것을 관찰할 수 있습니다.
으아악Javascript의 DefineProperty() 메소드를 사용하면 객체에 속성을 추가할 수 있습니다. 오류를 발생시키는 속성 설명자에 대한 getter를 추가할 수 있습니다.
사용자는 다음 구문에 따라 DefineProperty() 메서드를 사용하여 개체 속성에 액세스할 때 오류를 발생시킬 수 있습니다.
으아악위 구문에서는 설명자를 정의(defineProperty) 메서드의 세 번째 매개변수로 전달합니다. 객체의 특정 속성에 대한 설명자 함수에서 오류가 발생할 수 있습니다.
Obj_name - 객체에 속성을 추가하기 위한 객체 이름입니다.
Prop_name - 객체에 추가할 속성의 이름입니다.
{ get: () => { } } - 객체 속성에 대한 getters 함수입니다.
아래 예에서는 속성이 0인 빈_obj 개체를 만듭니다. 속성을 추가하려면 DefineProperties() 메서드를 사용합니다. 설명자로 오류를 발생시키고 오류 메시지를 표시하는 get() 메서드를 추가했습니다.
출력에서 사용자는 "prop1" 속성에 액세스하려고 하면 오류가 발생하는 것을 확인할 수 있습니다.
으아악Proxy() 생성자를 사용하면 개체에 대한 프록시를 만들고 getter 및 setter와 같은 개체의 모든 설명자를 재정의할 수 있습니다. 여기서 getters()를 재정의하고 오류를 발생시킬 수 있는 새 함수를 작성할 수 있습니다.
사용자는 다음 구문을 사용하여 Proxy() 생성자를 사용하여 개체 속성에 액세스하는 동안 오류를 발생시킬 수 있습니다.
으아악위 구문에서 target_obj는 프록시가 생성되는 개체입니다. get() 메소드를 포함하는 객체를 두 번째 매개변수로 전달했습니다. get() 메소드에서는 객체 속성의 유효성을 검사하고 객체 속성이 유효하지 않은 경우 오류를 발생시킬 수 있습니다.
아래 예에서는 Proxy() 생성자를 사용하여 targetObj 개체의 프록시를 만듭니다. 프록시를 생성할 때 사용자가 "prop5" 속성에 액세스했는지 확인합니다. 그렇지 않으면 항상 오류가 발생합니다. 즉, "prop5" 속성은 개체에서만 액세스할 수 있습니다. 그러나 "prop5" 속성은 아직 개체에 정의하지 않았기 때문에 정의되지 않은 값을 반환합니다.
<html> <body> <h2>Accessing the object properties in JavaScript</h2> <div id="content"> </div> <script> let content = document.getElementById('content'); let object = { name: 'Shubham', prop1: 'Hello', prop2: 'World', prop3: '!', prop4: { prop5: 'This is a nested object.' } } content.innerHTML = "The value of prop5 is : " + object.prop4.prop5; content.innerHTML += "<br> The value of prop3 is : " + object.prop3; content.innerHTML += "<br> The value of prop6 is : " + object.prop6; </script> </body> </html>
위 내용은 객체의 속성을 사용할 때 오류를 발생시키는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!