/**
* この関数が呼び出されるとき、最初のパラメータのみが渡されます。2 番目のパラメータが存在しない場合、クラスが作成されます。
* この関数が呼び出されるとき、最初のパラメータと 2 つのパラメータが渡されます。パラメータは基本クラスであり、2 番目のパラメータは基本クラスに基づいてコンテンツを追加します
*/
関数extend(obj ,prop){
function F(){
}
//最初のパラメータがオブジェクト型 (つまり、json オブジェクト) の場合、json のキー値を F に割り当てます。 function プロトタイプ F.prototype.key = value
if (typeof(obj) == "object") {
for(obj の変数名){
F.prototype[name] = obj[name] ;
}
} else {//最初のパラメータが関数型の場合、二次関数のプロトタイプを F 関数に代入する必要があるため、Prop を値で渡す必要があります (json オブジェクト)。関数のプロトタイプ
F.prototype = obj.prototype;
for(prop の変数名){
F.prototype[name] = prop[name];
}
}
return F;
}
//ここにはパラメータが 1 つしかないため、json オブジェクトのキーと値が extend 関数の F 関数のプロトタイプに割り当てられ、その後 person 変数が割り当てられます。これは、 person も関数になる場合、この関数は F 関数のプロトタイプ名と性別も持ちます
var person = extend({
name: "xxc",
) sex: "man"
} );
// person 関数を渡します。extend 関数を入力した後、最初に person プロトタイプを F 関数に割り当て、次に 2 番目のパラメータ Hope: "more Money" を割り当てます。このとき、F 関数には名前、性別、希望の 3 つが含まれます。
//最後に F 関数が返され、人のプロトタイプは F 関数と同じになります。名前、性別、希望
var person = extend(person,{
Hope:"もっとお金"
});
alert(person.prototype.name);//xxc
alert (person.prototype.sex);//man
alert(person.prototype .hope);//もっとお金
function.html
<スクリプト src="../jquery/jquery-1.10 .2.min.js">
<スクリプト src="extends2.js"> ;