객체 기반 프로그래밍에 대한 설명 이제 우리는 객체 기반 프로그래밍에 대해 다음 내용을 배울 수 있지만 실제로는 이전 장에 속합니다.
with 문은 문이나 문 그룹에 대한 기본 개체를 지정합니다.
사용법:
with ()
with 문은 일반적으로 특정 상황에서 작성해야 하는 코드의 양을 줄이는 데 사용됩니다. 다음 예에서는 Math가 반복적으로 사용된다는 점에 유의하세요.
x = Math.cos(3 * Math.PI) Math.sin(Math.LN10)
y = Math.tan(14 * Math. E);
with 문을 사용하면 코드가 더 짧아지고 가독성이 높아집니다.
with (Math) {
x = cos(3 * PI) sin(LN10); y = tan(14 * E);
}
이 개체는 "현재" 개체를 반환합니다. 다른 장소에서는 다른 개체를 나타냅니다. 이것이 JavaScript의 "주 프로그램"(어떤 함수나 이벤트 핸들러가 아닌)에서 사용되는 경우, with 문 블록에서 사용되는 경우에는 창 개체를 나타냅니다. 이벤트 핸들러에서 이를 사용하면 이벤트가 발생한 객체를 나타냅니다.
일반적인 사용법:
...
...
양식 입력의 유효성을 즉시 확인할 때 자주 사용되는 사용법입니다.
사용자 정의 생성자 우리는 Array() 및 Image()와 같은 생성자를 사용하여 변수를 생성할 수 있다는 것을 이미 알고 있습니다. 실제로 생성자를 직접 작성할 수도 있습니다. 사용자 정의 생성자도 함수를 사용합니다. 이 내부 함수를 사용하여 속성을 정의합니다.
함수 [()] {
...
this. =
...
}
그런 다음 new 생성자 키워드를 사용하여 변수를 생성합니다.
var = new [()]
변수를 생성한 후 는 객체가 됩니다. 그것은 자체 속성을 가지고 있습니다. 즉, this 를 사용하여 함수에 설정된 속성입니다.
다음은 브라우저 세부정보를 수집하기 위해 인터넷에서 찾은 사용자 정의 생성자의 예입니다.
function Is() {
var agent = navigator.userAgent.toLowerCase()
this .major = parsInt(navigator.appVersion); //주 버전 번호
this.minor =parseFloat(navigator.appVersion);//전체 버전 번호
this.ns = ((agent.indexOf(' mozilla' )!=-1) &&
((agent.indexOf('spoofer')==-1) && //Netscape 여부
(agent.indexOf('호환') == -1)) );
this.ns2 = (this.ns && (this.major == 3)); //Netscape 2 여부
this.ns3 = (this.ns && (this.major == 3)) / /넷스케이프 3인지
this.ns4b = (this.ns && (this.minor this.ns4 = (this.ns && (this .major >= 4)); //넷스케이프 4 이상 버전인지
this.ie = (agent.indexOf("msie") != -1); //IE인지
this. ie3 = (this.ie && (this.major == 2)); //IE 3
this.ie4 = (this.ie && (this.major >= 4)); 🎜> this.op3 = (agent.indexOf("opera") != -1); //오페라 3인지 여부
this.win = (agent.indexOf("win")!=-1); //Windows 버전인지
this.mac = (agent.indexOf("mac")!=-1); //Macintosh 버전인지
this.unix = (agent.indexOf("x11) ")!=-1); //유닉스 버전인지
}
var is = new Is();
이 생성자는 브라우저 정보를 매우 완벽하게 수집합니다. 우리는 이것이 객체에 대한 많은 속성(major, major, ns, ie, win, mac 등)을 정의한다는 것을 알 수 있습니다. 의미는 위의 참고 사항을 참조하세요.is 변수를 Is() 객체로 정의한 후, if(is.ns) 형식을 이용하면 브라우저 정보를 쉽게 알 수 있습니다. 또한 이 생성자에서 일반 JavaScript 문(위 예의 var 문)을 사용할 수도 있음을 알 수 있습니다.
매개변수를 사용하여 다른 생성자를 살펴보겠습니다.
function myFriend(theName, 성별, theAge,birthOn, theJob) {
this.name = theName
this.isMale = (gender .toLowerCase == '남성');
this.age = theAge;
this.birthday = new Date(birthOn)
this.job
}
var Stephen = new myFriend('Stephen', 'Male', 18, '1982년 12월 22일', 'Student');
이 생성자에서 우리는 매개변수의 사용법뿐만 아니라 다양한 속성에 대해 서로 다른 데이터 유형을 사용할 수 있습니다(위 예의 5가지 속성은 문자열, 부울 값, 숫자, 날짜, 문자열입니다). 또한 생성자를 사용하여 생성자의 속성을 "구성"할 수도 있음을 확인했습니다. . 무한 루프를 피하기 위해 충분한 "보호 조치"를 사용하는 경우 생성자 자체를 사용하여 고유한 속성을 구성할 수 있습니다.