>  기사  >  웹 프론트엔드  >  es6 정적 속성과 인스턴스 속성의 차이점은 무엇입니까?

es6 정적 속성과 인스턴스 속성의 차이점은 무엇입니까?

青灯夜游
青灯夜游원래의
2022-04-13 13:52:542457검색

차이점: 1. 정적 속성은 클래스 자체의 속성이며 클래스 자체에서만 호출할 수 있는 반면, 인스턴스 속성은 인스턴스 객체의 속성입니다. 2. 인스턴스 객체는 정적 속성을 호출할 수 없지만 클래스는 인스턴스 속성을 호출할 수 있습니다. . 정적 속성 선언 방법은 하나만 있으며 구문은 "클래스 이름. 속성 이름 = 값"인 반면, 인스턴스 속성에 대한 선언 방법은 여러 개가 있으며 예 클래스에서는 "속성 이름 = 값"으로 정의됩니다.

es6 정적 속성과 인스턴스 속성의 차이점은 무엇입니까?

이 튜토리얼의 운영 환경: Windows 7 시스템, ECMAScript 버전 6, Dell G3 컴퓨터.

Static은 인스턴스에 의해 상속되지 않는다는 의미입니다. 클래스 자체에 속하며 인스턴스에 의해 상속될 수 없으며 범위와 동일합니다.

  • 정적 속성: 클래스 자체에서만 호출할 수 있는 속성입니다. 정적 속성은 인스턴스 객체에서 호출할 수 없으며 클래스 자체에서만 호출할 수 있습니다.

  • 인스턴스 속성: 인스턴스의 속성, 즉 인스턴스 객체가 호출할 수 있는 인스턴스 속성입니다. 인스턴스는 클래스의 정적 속성을 호출할 수 없지만 클래스는 호출할 수 있습니다.

정적 속성 선언:

그냥 일반 개체에 속성을 추가하는 것과 같습니다. object.a = 值;(현재 유일한 방법) 일부 사람들은 클래스 내에 정적 키워드를 추가하는 것을 제안했지만 아직 구현되지 않았습니다

class F{};
F.b="父类的静态属性";//给F类加静态方法

정적 메서드 선언:

class Foo {
  static bar () {//静态方法  静态方法中的this指向类本身而不是实例
    this.baz();
  }
  static baz () {//静态方法
    console.log('hello');
  }
}
 
Foo.bar() // hello
new Foo().bar();//实例调用不了,会报错

메서드 앞에 정적 키워드를 추가합니다. 인스턴스 속성 선언:

1, 클래스

class MyClass {
  myProp = 42;
 
  constructor(props) {
    console.log(this.myProp); // 42
  this.name=props.name

  }
}
 
//上面代码中,myProp就是MyClass的实例属性。在MyClass的实例上,可以读取这个属性。

2에 정의, 생성자에 정의(고전적인 쓰기 반응)

class ReactCounter extends React.Component {
  constructor(props) {
    super(props);//可以让子类继承
    this.state = {
      count: 0
    };
  }
}
 
//等价于
class ReactCounter extends React.Component {
  state = {
    count: 0
  };
}

정적 속성과 인스턴스 속성의 차이점 요약:

  • 정적 속성은 클래스 자체의 속성은 클래스 자체에서만 호출할 수 있지만 인스턴스 속성은 인스턴스 개체의 속성입니다. 인스턴스 객체에 의해 호출될 수 있습니다.

  • 인스턴스 객체는 정적 속성을 호출할 수 없으며 클래스 자체에서만 호출할 수 있으며 클래스는 인스턴스 속성을 호출할 수 있습니다.

  • 정적 속성에는 선언 방법이 하나만 있는 반면 인스턴스 속성에는 선언 방법이 여러 개 있습니다.

  • 인스턴스 속성은 생성자 내부에서 정의하거나 생성자가 인스턴스화된 후 인스턴스에서 정의할 수 있습니다.

    정적 속성, 생성자 위에 정의된 속성입니다. 생성자를 통해 직접 액세스할 수 있습니다.

【관련 추천: javascript 비디오 튜토리얼, web front-end

위 내용은 es6 정적 속성과 인스턴스 속성의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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