首頁 > web前端 > js教程 > 主體

javascript物件導向特性程式碼實例_javascript技巧

WBOY
發布: 2016-05-16 16:44:52
原創
957 人瀏覽過

一、基本的類別的使用
方法一:

複製程式碼




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
缺點:

· 無法實現多重繼承· 建構子不帶參數 Tips
通常使用混合模式,兩者一起用




複製程式碼


程式碼如下:



程式碼如下:


function A(x) {
 this.x = x;
}

A.prototype.printx = function()  // 寫到A類裡面this.printx = function....也是可以的,下同{  document.write(this.x, "
"); }
function B(x, y)
{
 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
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板