클러치의 응용(사유 변수, 코리화, 편함수)
1. 개인 변수
1. 교체기
const countModule = (function () {
let count = 0;
function addCount() {
count++;
return count;
}
function toZero() {
count = 0;
return count;
}
return {
addCount,
toZero
}
})();
countModule.addCount(); // 1
countModule.addCount(); // 2
countModule.addCount(); // 3
countModule.toZero(); // 0
countModule.addCount(); // 1
countModule.addCount(); // 2
countModule.addCount(); // 3
2. 액세스
const myNameModule = (function () {
let name = "Mike";
function getName() {
return name;
}
function setName(value) {
name = value;
return name;
}
return {
getName,
setName
}
})();
myNameModule.getName(); // 'Mike'
myNameModule.setName('Helen'); // 'Helen'
3. 모듈식
const User = (function () {
let _password; //
class User {
constructor(username, password) {
//
_password = password;
this.username = username;
}
login() {
console.log(` :${this.username}, :${_password}`);
}
}
return User;
})();
let user = new User('mike', 'mike123');
console.log(user.username); // 'mike'
console.log(user.password); // undefined
login(); // 'mike' 'mike123'
2. 코리화 함수
콜리화는 n개의 매개 변수를 받아들이는 1개의 함수를 1개의 매개 변수만 받아들이는 n개의 서로 끼워 넣는 함수로 바꾸는 과정이다.즉 fn(a, b, c)은 fn(a)(b)(c)로 변한다.
function personalInfo(school) {
return function (grade) {
return function (profession) {
return ` :${school} :${grade} :${profession}`;
}
}
}
//
const schoolName = personalInfo(' ');
// school,
let gradeName = schoolName(' ');
// school grade,
let professionName = gradeName(' ');
console.log(professionName);
3. 편함수
코리화와의 차이점은 단함수를 더 이상 강조하지 않는다는 것이다.예를 들어 하나의 인삼은 2개의 인삼 함수를 되돌려준다.
function personalInfo2(school) {
return function (grade, profession) {
return ` :${school} :${grade} :${profession}`;
}
}
const schoolName2 = personalInfo2(' ');
let gradeAndprofessionName = schoolName2(' ', ' ');
console.log(gradeAndprofessionName);
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.