高階函式,單例模式,AOP

2021-07-22 12:53:08 字數 1360 閱讀 8448

(1)將函式作為引數的函式的情況,值得一提是前面學習,學到的陣列的重排序方法sort(),由於它會呼叫每個陣列項的tostring轉型方法,然後得到字串,確定公升序排列。即使陣列的每一項都是數值,比較的也是字串。因此,sort()方法可以接收乙個函式做引數,以便我們決定我們指定哪個位置在哪個位置的前面。

function compare(v1, v2)  else if (v1 > v2)  else }//傳入的函式var arr = ;for (var i = 0; i < 10; i++) arr.sort(compare);//將函式做引數傳入乙個函式console.log(arr);

(2)將函式作為另乙個函式的返回值(經典例子:資料型別的判斷)

function istype(array);

for(var i = 0 , type ; type = array[i++];)

})(type);

}return type;

} var type = istype(["number" , "string" , "object" , "function" , "boolean"]);//引數可以多加一些

var o = true;//測試資料

var result = type.isstring(o);

console.log("o的資料型別:" + result);

2.單例模式:產生乙個類的唯一例項(js值沒有類的概念,但有類似機制建構函式)

function person(){}

function getsigle(fn);

return function();

} var f = getsigle(function());

var p1 = f();

var p2 = f();

console.log(p1 === p2);//true

3.aop:面向切面程式設計(aspect oriented programing)(重要的兩個概念before,after)

function.prototype.before = function(bfn)

}function.prototype.after = function(afn)

}var corefunction = function();

corefunction = corefunction.before(function()).after(function());

corefunction();//1 2 3

單例模式 單例模式

餓漢式 急切例項化 public class eagersingleton 2.宣告靜態成員變數並賦初始值 類初始化的時候靜態變數就被載入,因此叫做餓漢式 public static eagersingleton eagersingleton new eagersingleton 3.對外暴露公共的...

單例 單例模式

簡單的實現乙個單例 instancetype sharedinstance return instance 真正的單例模式 myclass sharedinstance return instance id allocwithzone nszone zone return nil id copywi...

dispatch once函式之單例模式

使用 dispatch once函式 可以簡化 並且保證執行緒安全。變數只需要初始化一次 保證只呼叫 api一次。void touchesbegan nsset touches withevent uievent event 單例設計模式確保對於乙個給定的類只有乙個例項存在,這個例項有乙個全域性唯一...