關於js函數,方法,對象實例的一些說明


朋友們大家好,好久沒有更新文章了,最近正好有空就想着寫點什么吧,加上這段時間總是能聽到一些朋友們問關於js函數,方法,對象實例到底有什么區別這個問題,所以今天就獻丑來簡單說明一些吧!

其實這些主要都是一些概念上的東西,在這里還是推薦大家多看看諸如《JavaSript權威指南》,《JavaScript高級編程》之類的書籍,當然這些概念如果用代碼寫出來我相信大家也都還是能夠知道的,所以下面我就用文字和代碼舉一些簡單的例子進行說明:

函數:簡單的說函數就是,使用function關鍵字定義(或聲明)的表達式語句;他有兩種寫法,一種是函數定義表達式:

var aa = function(){....};

另一種是函數聲明語句:

function aa(){....};

這兩種寫法在調用時基本一樣,但是這兩種寫法還是有一些區別的:

1.js腳本在運行時會把函數聲明語句提升到所在作用域的最頂端,也就是說你在底下聲明的函數在其聲明之前也可以調用,即可以先調用后聲明,但函數定義表達式則必須先定義后調用;

2.正是函數聲明語句的作用域提升所以最好不要在if/for/while等語句內使用函數聲明語句,因為這些語句沒有塊級作用域;

函數說完了,接下來說說方法:

方法:所謂方法其實就是當對象的屬性是一個函數時,這個函數就是該對象的方法;簡而言之方法就是,作為對象屬性的函數!

//定義一個對象bb
var bb = {
    cc : function(){
        ...........
    }
}

看上面這段代碼,函數cc在這里就是對象bb的方法,我們一般叫做bb的cc方法!

看到這里我想大家應該能夠明白函數跟方法的區別了吧:

方法也是函數,但只有作為對象屬性的函數才是方法!

有點繞啊,但是大家應該都能看的明白!

接着我們在來說說實例:

實例是怎么回事了,其實簡單點說,實例就是通過new關鍵字調用的對象!

var obj = new Object; //這里對象obj就是一個對象實例;
var arr = new Array; //這里的arr就是一個數組實例;

上面是兩個簡單的例子;下面我們可一個稍微復雜點的:

//創建一個簡單的information
var information = function(){
    this.name = '';
    this.setName = function(name){
        this.name = name;
    }
    this.getName = function(){
        alert(this.name);
    }
}
//創建information類的實例
var myName = new information;//這里沒有參數,可以省略小括號
myName.setName('平凡公子');//調用實例的setName方法;
myName.getName() //調用實例的getName方法;

上面這個例子可以看出實例,方法,以及實例方法;information是一個對象(函數也是對象),myName是information對象的實例,setName和getName是對象方法,在這里它們也是實例對象myName的方法!

總結:方法是一個作為對象屬性的函數,實例是通過關鍵字new來調用的函數(對象),實例對象是對對象的一個引用,它具有對象的所有方法!

好吧,說到這里本文也就該結束了,可能由於語言水平問題有些地方沒有表達清楚,還請各位看官海涵!如有不明白的地方可以留言!

 

本文由: 平凡公子原創發布,歡迎閱讀及轉載!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM