>  기사  >  웹 프론트엔드  >  객체의 속성을 사용할 때 오류를 발생시키는 방법은 무엇입니까?

객체의 속성을 사용할 때 오류를 발생시키는 방법은 무엇입니까?

WBOY
WBOY앞으로
2023-08-26 08:13:11524검색

객체의 속성을 사용할 때 오류를 발생시키는 방법은 무엇입니까?

JavaScript에서 객체는 키-값 형식의 속성을 포함합니다. 객체를 참조로 사용하여 속성 이름을 사용하여 객체의 모든 속성에 액세스할 수 있습니다.

때때로 우리는 객체에 존재하지 않는 객체 속성에 접근하려고 합니다. 이 경우 정의되지 않은 값을 얻습니다. 다음 예를 통해 이해해 보자.

예(개체 속성에 액세스)

아래 예에서는 객체를 생성하고 몇 가지 속성을 추가했습니다. 또한 일부 중첩 속성을 추가했습니다. 그런 다음 "prop4"의 중첩 속성인 "prop5" 속성에 액세스하려고 합니다. 사용자는 출력에서 ​​해당 값을 관찰할 수 있습니다.

또한 "prop6" 속성에 액세스하려고 시도하지만 개체에 존재하지 않기 때문에 개체가 정의되지 않은 상태를 반환합니다.

으아악

따라서 특정 속성이 객체에 존재하지 않을 때마다 해당 속성이 객체에 존재하지 않는다는 오류가 발생할 수 있습니다.

여기에서는 개체 속성에 액세스하는 동안 오류를 발생시키는 다른 방법을 배웁니다.

객체 속성에 액세스할 때 "in" 연산자를 사용하면 오류가 발생합니다

"in" 연산자를 사용하면 객체에 속성이 존재하는지 확인할 수 있습니다. "in" 연산자의 왼쪽 피연산자로 키를 사용하고 오른쪽 피연산자로 객체를 사용할 수 있습니다.

객체에 속성이 존재하는지 확인할 수 있습니다. 그렇지 않으면 오류가 발생할 수 있습니다.

문법

사용자는 다음 구문에 따라 "in" 연산자를 사용하여 개체 속성에 액세스하는 동안 오류를 발생시킬 수 있습니다.

으아악

위 구문에서 key는 객체에 존재하는지 확인하는 데 사용되는 속성입니다.

아래 예에서는 table_obj 객체를 생성하고 일부 키-값 쌍을 추가합니다. get_property_value()라는 함수는 객체에 속성이 존재하는지 확인합니다. 객체에 속성이 존재하는 경우 속성 값이 반환됩니다. 그렇지 않으면 오류가 발생합니다.

try-catch 블록에서는 오류를 포착합니다. 출력에서 사용자는 get_property_value() 함수가 속성에 대해 정의되지 않은 값을 반환하는 대신 "table_price1" 속성에 대해 오류를 발생시키는 것을 관찰할 수 있습니다.

으아악

defineProperty() 메서드를 사용하여 객체 속성에 액세스하면 오류가 발생합니다

Javascript의 DefineProperty() 메소드를 사용하면 객체에 속성을 추가할 수 있습니다. 오류를 발생시키는 속성 설명자에 대한 getter를 추가할 수 있습니다.

문법

사용자는 다음 구문에 따라 DefineProperty() 메서드를 사용하여 개체 속성에 액세스할 때 오류를 발생시킬 수 있습니다.

으아악

위 구문에서는 설명자를 정의(defineProperty) 메서드의 세 번째 매개변수로 전달합니다. 객체의 특정 속성에 대한 설명자 함수에서 오류가 발생할 수 있습니다.

매개변수

  • Obj_name - 객체에 속성을 추가하기 위한 객체 이름입니다.

  • Prop_name - 객체에 추가할 속성의 이름입니다.

  • { get: () => { } } - 객체 속성에 대한 getters 함수입니다.

아래 예에서는 속성이 0인 빈_obj 개체를 만듭니다. 속성을 추가하려면 DefineProperties() 메서드를 사용합니다. 설명자로 오류를 발생시키고 오류 메시지를 표시하는 get() 메서드를 추가했습니다.

출력에서 사용자는 "prop1" 속성에 액세스하려고 하면 오류가 발생하는 것을 확인할 수 있습니다.

으아악

객체 속성에 액세스할 때 Proxy() 생성자를 사용하면 오류가 발생합니다

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제