여기에 내 첫 번째 질문이므로 사과하지 않을 경우 사과드립니다. 아마 내 문제에 대한 해결책을 찾을 수 있지만, 나는 그것을 검색하는 방법, 구글이나 뭐 그런 질문을하는 방법에 대한 단서가 전혀 몰라. 자바 스크립트 생성자 및 인수
나는 다음과 같은 문제가, 내가 사용하려고 할 때의 지금과 같은 생성자const Product = function (color) {
let self = {};
self.setColor = function(colorToSet) {
color = colorToSet;
}
self.getColor = function() {
return color;
}
return self;
};
을 보자 :
let self = {}, color;
을 나는 색상이 이미 선언되었습니다 오류가 발생 크롬 콘솔에서, 그래서 색상 필드를 제거한 후 위의 스 니펫 코드를 사용하여 설명 할 수없는 마술이 일어났습니다. 다음은 어떻게 든 선언되어야한다, 그것은 처음으로 색상을 반환하는 경우
let a = Product("Yello");
a.getColor() ----> "Yellow"
a.setColor("red");
a.getColor() ----> "red";
:
이의 나는 이런 식으로 뭔가를 쓸 것입니다 가정 해 봅시다. 컬러 필드가 어디에 있는지 모르겠지만 실제로는 찾을 수 없으며 실제로 프로토 타입에서도 찾을 수 없습니다. 이유를 설명해 주시겠습니까? 그리고 그것은 어디에 있습니까?
예를 들어 색상을 선언 할 수 있다는 것을 알고 있습니다. self.color = color; 하지만 위의 예제가 어떻게 작동하고 색상 영역에서 어떤 일이 발생했는지 알고 싶습니다.
또한 매개 변수에서 값을 선언하는 데 let을 사용할 수 있는지 알려주시겠습니까?
const Product = function (color) {
let self = {}, color;
self.setColor = function(colorToSet) {
color = colorToSet;
}
self.getColor = function() {
return color;
}
return self;
};
Afaik,'color' 만 사용하면'window' 객체에 추가됩니다. 실제로'window.color'를 가져 오거나 설정하고 있습니다. –
@Chris G : 색상이 '창'에 정의되어 있지 않습니다. ** 클로저입니다 ** 동작입니다. – Pineda