javascript対象に向けた理解(一)
7017 ワード
初めて園子で文を書きます.
js対象者向けの理解について:
工場の方式は何ですか?構造関数は何ですか?オリジナルチェーン?オブジェクトの参照
1.相手は何ですか?
jsで接触することが多いのが対象です.例えば:
2.工場方式は何ですか?
3.構造関数は何ですか?
特に注意:
4.オブジェクトの参照:
5.原型:
js対象者向けの理解について:
工場の方式は何ですか?構造関数は何ですか?オリジナルチェーン?オブジェクトの参照
1.相手は何ですか?
jsで接触することが多いのが対象です.例えば:
1 var arr = [];
2
3 arr.number = 10; // :
4
5 //alert( arr.number );
6 //alert( arr.length );
7
8 arr.a= function(){ // :
9 alert(123);
10 };
11
12 arr.a(); // 123
new Date()new String()により、オブジェクトを一つずつ作成することができます.2.工場方式は何ですか?
// :
function createPerson(name){
//1.
var obj = new Object();
//2.
obj.name = name;
obj.showName = function(){
alert( this.name );
};
//3.
return obj;
}
var p1 = createPerson(' ');
p1.showName();
工場方式により、new関数は必要なく、直接関数の内部に新しいオブジェクトを作成し、新しいオブジェクトに属性と方法を追加してから投げます.短所は:柔軟さが足りないことです.3.構造関数は何ですか?
function CreatePerson(name){
this.name = name;
this.showName = function(){
alert( this.name );
};
}
var p1 = new CreatePerson(' ');
p1.showName();
関数の外部にあるnew関数を通じて、オブジェクトを立体関数として具体化しました.関数の内部でthisはこの実用化の対象を指しています.windowを指すのではありません.属性と方法は実用化されたオブジェクトにマウントされました.短所:各方法は新しく作成した実用化対象の上にマウントされています.多くのオブジェクトを実装する必要があると、性能が無駄になります. 特に注意:
p1.showName() == p2.showName();//false , , , 。
4.オブジェクトの参照:
//example 1:
var a = [1,2,3];
var b = a;
b.push(4);
alert(b); //1,2,3,4; // b , a, b a
//example 2:
var a = [1,2,3];
var b = a;
b = [1,2,3,4];
alert(a); // 1,2,3 // b a, b , , [1,2,3,4], a
// : ,
//example 3:
var a = [1,2,3];
var b = [1,2,3];
alert(a == b); //
5.原型:
function CreatePerson(name){
this.name = name;
}
//
CreatePerson.prototype.showName = function(){
alert( this.name );
};
var p1 = new CreatePerson(' ');
p1.showName();
var p2 = new CreatePerson(' ');
p2.showName();
alert(p1.showName() == p2.showName()) //true
// :
Array.prototype.sum = function(){
var result = 0;
for(var i = 0; i<this.length; i++){
result += this[i];
}
return result;
}
arr = [1,2,3];
alert(arr.sum()); //6