권한 있는 메서드 정의 생성자 내부에서 this 키워드를 통해 정의된 메서드는 인스턴스화된 객체 상속을 통해 호출할 수 있습니다.
var Student = function(name) {
var _name = name; //개인 속성
//특권 메서드
this.getName = function() {
return _name;
this.setName = function(name) ) {
_name = 이름;
};
var s1 = new Student('zhangsan')
s1.getName(); >
권한 있는 메서드의 역할
권한 있는 메서드는 생성자 외부에서 공개적으로 접근할 수 있으며(인스턴스화된 객체에 한함), private 멤버와 메서드에도 접근할 수 있으므로 객체나 메서드로 사용됩니다. 생성자 인터페이스는 권한 있는 메서드를 통해 개인 속성이나 메서드에 대한 공용 메서드의 액세스를 제어할 수 있는 데 가장 적합합니다. JS 프레임워크의 확장에는 많은 애플리케이션이 있습니다.
권한 있는 메서드와 공개 메서드의 차이점 같은 점: 1. 둘 다 생성자 외부에서 공개적으로 액세스할 수 있습니다. 2. 모두 공용 속성에 액세스할 수 있습니다
차이점: 2가지 점이 있습니다
1. 각 인스턴스에는 권한 있는 메서드의 복사본이 있어야 하며(싱글톤에서 사용되는 경우를 제외하고 메모리를 고려해야 함) 공용 메서드 모든 인스턴스에 대한 코드 복사
var s2 = new Student('lisi');
//두 인스턴스의 권한 있는 메서드에 대한 참조가 다릅니다. 메소드는 객체가 다시 생성될 때 사용됩니다.
console.log(s1.getName === s2.getName); //false
2. , 그러나 공개 메소드는 그럴 수 없습니다.
코드 복사
Student.prototype.myMethod = function() {
console.log(_name); //ReferenceError: _name이 정의되지 않았습니다.
s1; .myMethod() ;
요약
: 권한 있는 메서드는 권한 있는 메서드를 통해 전용 속성 및 메서드에 액세스할 수 있습니다.