/**
* 이 함수가 호출되면 첫 번째 매개변수만 전달되고, 두 번째 매개변수가 없으면 클래스가 생성됩니다.
* 이 함수가 호출되면 두 개의 매개변수가 전달되고, 첫 번째 매개변수는 매개변수는 기본 클래스이고, 두 번째 매개변수는 기본 클래스를 기반으로 콘텐츠를 추가합니다.
*/
함수 확장(obj ,prop){
function F(){
}
//첫 번째 매개변수가 객체 유형(예: json 객체)인 경우 json의 키 값을 F에 할당합니다. function 프로토타입 F.prototype.key = value
if (typeof(obj) == "object") {
for(var name in obj){
F.prototype[name] = obj[name] ;
}
} else {//첫 번째 매개변수가 함수 유형인 경우 보조 함수의 프로토타입을 F 함수에 할당합니다. Prop은 값(json 개체)으로 전달되어야 하므로 F에 prop을 할당합니다. 함수의 프로토타입
F.prototype = obj.prototype;
for(var name in prop){
F.prototype[name] = prop[name]; >return F;
}
//여기에는 매개변수가 하나뿐이므로 json 객체의 키와 값이 확장 함수의 F 함수 프로토타입에 할당되고 그 다음 person 변수가 할당됩니다. This person 도 함수가 되면 이 함수도 F 함수의 프로토타입 이름과 성별을 갖습니다.
var person = extend({
name: "xxc",
sex: "man"
} )
//person 함수를 전달합니다. 확장 함수에 들어간 후 먼저 F 함수에 person 프로토타입을 할당하고 두 번째 매개변수 hope: "more Money"를 할당합니다. 이때 F 함수의 프로토타입에는 name, sex, hope 세 가지가 있습니다.
//마지막으로 F 함수가 반환되므로 person의 프로토타입은 F 함수와 동일해집니다. 이름, 성별, 희망
var person = extend(person,{
희망:"더 많은 돈"
})
alert(person.prototype.name);//xxc
alert (person.prototype.sex);//man
alert(person.prototype .hope);//돈 더 벌기
function.html
meta http-equiv="content-type" content="text/html; charset=UTF -8">
저자별 최신 기사
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31