javascript function的多種用法詳解

admin發表於2017-04-08

由於設計原因,javascript的function可以充當多種角色。

比如可以作為建構函式,也可以作為物件中的方法,也可以作為一個普通獨立的函式,並且我們還可以以匿名的方式使用它們,下面就通過簡單的程式碼片段對此做一下簡單介紹,需要的朋友可以做一下參考。

一.用作建構函式:

雖然javascript可以說是一門物件導向的語言,但是它並沒有class類這個概念。

於是我們就可以使用function來充當這一角色,程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼
function Antzone(webName,url){
  this.webName=webName;
  this.url=url;
}
var antzone=new Antzone("螞蟻部落","softwhy.com");
console.log(antzone.webName);

在上面的程式碼中,function已經承擔了C#這樣典型面嚮物件語言中Class類的角色。

二.用作物件的方法:

一個依附於物件的函式,也就是說它是物件的一個成員,我們通常稱之為方法。下面修改一下上面的程式碼例項:

[JavaScript] 純文字檢視 複製程式碼
function Antzone(webName,url){
  this.webName=webName;
  this.url=url;
  this.show=function(){
    console.log(this.webName);
  }
}
var antzone=new Antzone("螞蟻部落","softwhy.com");
antzone.show;

上面的程式碼中show就是屬於物件的一個方法。

三.用作一個獨立的函式:

也就是它作為一個獨立的功能模組,並不隸屬於任何物件。

程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼
function done(a,b){
  var num=a+b;
  return num;
}
console.log(done(1,2));

上面的函式實現了簡單了算數運算功能,它是一個獨立的功能模組。

四.匿名函式的使用:

[JavaScript] 純文字檢視 複製程式碼
// 全域性名稱空間
var RUI = {}
// ajax.js
~function(R) {
  // 輔助函式...
  ajax = {
    request: function() {
      // ...
    }
    getJSON: function() {
      // ...
    }
    ...
  }
  // 暴露出模組給 R
  R.ajax = ajax
}(RUI);

匿名函式執行後把API物件暴露給了RUI,無論匿名函式內做了多少操作,匿名函式外是看不到的,也是沒有必要去理會的。最終關心的是公開的 API 方法,只要瞭解這些方法的引數及意義就可以馬上使

相關文章