js物件導向編程

來源:互聯網
上載者:User

標籤:

1、javascript是一種基於對象(object-based)的語言,你遇到的所有東西幾乎都是對象。

2、因為JavaScript中沒有class,所以有人把類也成為原型對象。

 

function Cat(){

}

Cat();//函數

var cat1=new Cat(); //類

js中的對象的屬性可以動態添加;屬性沒有限制。

 

類(原型對象)--如何自訂類(原型對象)和對象:

1、Factory 方法--使用new Object建立對象並添加屬性;

2、使用建構函式來定義類(原型對象)

3、使用prototype

4、建構函式及原型混合方式

5、動態原型方式

 

基本文法

function 類名/原型對象(){

}

function Person(){}

var a=new Person();

window.alert(a.constructor); //a對象執行個體的建構函式

window.alert(typeof a);    //a的類型是什麼

var b=”1234”;

window.alert(b.constructor);  //b對象執行個體的建構函式

window.alert(typeof b);  //b的類型是什麼

 

如何判斷一個對象執行個體是不是Person類型?

if(a instanceof Person){

window.alert(“a是person”);

}

if(a.constructor==Person){

window.alert(‘a是person’);

}

 

對象----function特別說明:

1、在js中一切都是對象

2、類(原型對象)其實也是對象,它實際上是Function類的一個執行個體,通過類我們可以建立自己的對象執行個體。

 

對象執行個體---如何訪問(使用)對象執行個體的成員變數

(1)、對象執行個體名.屬性名稱

(2)、對象執行個體名.[“屬性名稱”];

 

var a=90; //全域變數

function  test(){

a=900;    //在函數裡,如果不帶var,則表示使用全域變數的a變數

  //如果帶上var則表示在test()中,定義了一個新的a變數

}

test();

window.alert(a);

 

js中this的用法:哪個對象執行個體調用this所在的函數,那麼this就代表哪個對象的執行個體。

〉〉this不能在類定義的外部使用,只能在類定義的方法中使用。如果放在外部使用,調用者就不再是類的執行個體了。

function  Person(){

var  name=”abc”; //var修飾的name是私人的,只能內部使用

var   age=90;    

this.name2=”abc2”;  //this.name2表示name2這個屬性是公開的

this.show=function(){ //這個就是Person類的一個公開方法(特權方法)

window.alert(name+” ”+age);

}

function  show2(){  //這是Person類的一個私人方法

}

}

var  p=new Person();

window.alert(p1.name=” ”+p1.age+”  ”+p1.name2); //錯誤

 

//p1.name->undefined  p1.age->undefined  p1.name2->abc2

 

給對象添加方法還有兩種方式:

第一種:

function  類名{

this.屬性;

}

var  對象名=new 類名(); //建立對象

function  函數名(){

//執行

}

對象名.屬性名稱=函數名; //這樣相當於把函數賦給對象名.屬性名稱,

//此時這個屬性名稱就表示一個函數

對象名.屬性名稱;

 

第二種:

對象名.屬性名稱=function(參數列表){

}

調用:對象名.屬性名稱(實際參數);

js物件導向編程

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.