>  기사  >  웹 프론트엔드  >  JavaScript setter 및 getter 메소드

JavaScript setter 및 getter 메소드

小云云
小云云원래의
2017-12-07 15:46:371417검색

저는 프로젝트를 작성할 때 Javascript의 setter 및 getter 메소드를 사용한 적이 없으므로 이해해야 할 개념입니다. 오늘 책에서 이 지식 포인트를 보았지만 여전히 모호하므로 공부하기로 결정했습니다.

Javascript 개체의 속성은 이름, 값 및 속성 집합으로 구성됩니다. 먼저 객체의 두 가지 속성을 살펴보겠습니다.

우리가 자주 사용하고 익숙해야 하는 데이터 속성
접속자 속성이라고도 하는 접근자 속성

접속자 속성이란 무엇입니까? 값을 가져오고 설정하는 함수 집합입니다. ECMAScript5에서는 하나 또는 두 개의 메서드를 사용하여 속성 값을 설정할 수 있으며, 두 메서드는 getter와 setter이므로 getter와 setter에 의해 정의된 속성을 접근자 속성이라고 합니다.


var o = {
  get val(){
    /*函数体*/
    return ;
  },
  set val(n){
    /*函数体*/
  }
}


위는 접근자 속성을 정의하는 가장 간단한 방법입니다. getter 및 setter 메서드는 실제로 함수를 대체하는 함수임을 알 수 있습니다.


var o = {
  a:3,
  get val(){
    return Math.pow(this.a,2);
  }
}

console.log(o.val);//9
o.val = 100;
console.log(o.val);//9


getter 메소드에는 매개변수가 없고 반환 값이 있습니다. getter 메소드를 별도로 설정할 경우 속성 값만 가져올 수 있고 정의된 속성 값을 변경할 수 없으므로 데이터 보안이 보장됩니다.


var o = {
  a:3,
  set val(n){
    this.a = n;
  }
}

console.log(o.val);//undefined


setter 메소드에는 매개변수가 있고 반환 값은 없습니다. setter 메소드만 단독으로 설정하면 속성 값을 읽을 수 없습니다. 위의 코드 출력, 여기서 이는 해당 객체(예: 코드의 "o")를 나타냅니다.


var o ={
  a:3,
  get val(){
    return Math.pow(this.a,n);
  },
  set val(n){
    this.a = Math.max(this.a,n);
  }
}

console.log(o.a);//3
console.log(o.val);//9
o.val = 10;
console.log(o.a);//10
console.log(o.val);//100


또한 접근자 속성도 상속될 수 있습니다.

관련 권장 사항:

Javascript의 getter 및 setter에 대한 기본 소개

JavaScript의 getter/setter 구현에 대한 샘플 코드 공유

PHP5 getter/setter 기본 class_php 기술 코드 구현

위 내용은 JavaScript setter 및 getter 메소드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.