一、基本的類別的使用
方法一:
複製程式碼
function sth(a) // 建構子{
this.a = a;
this.fun = output; // 成員函數
}
function output(a, b, c)
{
document.write(this.a);
}
//呼叫var s = new sth(250);
s.fun(1, 2, 3);
ouput(1, 2, 3); //如果output在sth之前就是錯的
複製程式碼
程式碼如下:
function sth(a)
{
this.a = a;
this.output = function()
{
document.write(this.a);
}
}
var🎜>var s = new sth(2);
s.output(); // 輸出2
方法一:
方法一:
方法一:
方法一:
方法一:
方法一:
方法1 >
複製程式碼
程式碼如下:
function A(x)
{
this.x = x; }
}
}
}
}
}
function B(x, y)
{
// 方法1 /*
this.construct = A;
this.construct(x);
delete .construct;
*/
// 方法2
//A.call(this, x);
// 方法3
A.apply(this. , new Array(x)); // 亦可A.apply(this, arguments), 不過arguments參數順序一定要對
this.y = y;
this.print = function()
{
document.write("x = ", x,
", y = ", y);
}
}
}
var b = new B(1, 2);
b.print();alert(B instanceof A); // 輸出false
優點:可以實現多繼承(多呼叫call就好)
缺點:
· 必須以建構函式方式使用
· 使用instanceof運算子運算此類繼承結果為false
方法二:
複製程式碼
程式碼如下:
function A()
程式碼如下:
function A()
{
{
}
A.prototype.x = 1;
function B()
{
}
B.prototype = new A(); // 不能帶參數!
B.prototype.y = 2;
B.prototype.print = function()
{
document.write(this.x, ", ", this.y, "
");
}
var b = new B(); b.print();
document.write(b instanceof A); // 輸出true
缺點:
通常使用混合模式,兩者一起用
複製程式碼
程式碼如下:
程式碼如下:
function A(x) {
this.x = x; }
A.call(this, x);
this.y = y;
}
B.prototype = new A(); // 不能帶參數! B.prototype.printxy = function() { document.write(this.x, ", ", this.y, "
"); } var b = new B(1, 2); b.printx(); // 輸出1 b.printxy(); // 輸出1, 2 document.write(b instanceof A); // 輸出true
三、類似靜態成員函數的使用複製程式碼複製程式碼 程式碼 程式碼🎜>function sth(a) { this.a = a; } sth.fun = function(s) { sth.fun = function(s) { ); } var s = new sth(2); sth.fun(s); // 輸出2
四、物件的釋放複製程式碼複製程式碼 代碼如下:var obj = new Object; // obj是引用obj = null; // 取消引用,會自動進行垃圾回收;如果需要根本釋放此對象,要將它的所有引用都賦值為null
五、函數物件
程式碼如下:v(1, 2); // 將會輸出3
七、函數的重載
程式碼如下:
程式碼function fun()
{
switch (arguments.length)
{
case 1:
document.write(arguments[0])
; :
document.write(arguments[0] arguments[1]);
break;
default:
document.write("ERROR!")
document.write("ERROR!")
document.write("ERROR!")
}
fun(1); fun(1, 2);
複製程式碼
複製程式碼
程式碼如下:
function fun()
{
var v = 1;
function fun2()
{
v. ;
document.write("
");
return v;
}
return fun2; } return fun2; } return fun2; } var. func(); // 輸出2 func(); // 輸出3 func(); // 輸出4