js的函式和python差不多,def 換成function
arguments
js函式在使用時傳入的引數可以不與定義的引數個數相等(可多可少),
arguments用於獲取所有傳入的引數,用法類似與array
rest
用法function f(a,b,...rest)
獲取除了自定義的a,b引數外的其餘引數,用法和array類似,若無,則返回空陣列。
全域性物件類似於命名空間,一般情況下我們所寫的變數都會在乙個叫window
的命名空間內。如:
也可以以物件的方式自己定義乙個命名空間var a =1;
console.
log(a)
;#等價於console.
log(window.a)
thisvar name_space =
name_space.a =
1name_space.
func
=function
(...
)console.
log(name_space.a)
在物件內的this指向該物件,但在物件外使用this,會指向全域性變數window。
如
使用getname時,應該var obj =
};
obj.getname();
而不是
這樣this又會指向window!var f = obj.getnamef(
)
另外,若
這樣也會使得this指向windowgetname
=function()
var obj =
;
這兩者都是為了解決this的指向問題
map/reducefunction
getage()
var xiaoming =
;getage.
(xiaoming,
);// 25, this指向xiaoming, 引數為空
內建與array中,傳入乙個函式,用法
array.map(f)
map的作用是使得[x1,x2,x3,…]轉化為[f(x1),f(x2),f(x3),…]
array.reduce(f)
[x1, x2, x3, x4].reduce(f) = f(f(f(x1, x2), x3), x4),
這種方法可以用於求累加,累乘等運算。
filter
用於過濾,若函式輸出結果為false,則刪除該元素,若為true,則保留
如實現保留奇數過濾偶數的功能:
sortarray.
filter
(function
(x))
;
用於自定義的排序,傳入兩個引數x和y,若返回-1則把x排在y前面,返回0則認為兩者相等,返回1則把y排在x前面。
注意,js預設的sort函式是先將元素轉化為字元型別,再排序,所以若對array.
sort
(function
(x,y)
)
[1,2,10]排序,會返回[1,10,2]!
匿名函式
用法
若要輸入/輸入多個值,應該var
f= x => x*x
另外值得注意的是匿名函式中的this的作用域是他所處的{},而不是windowvarf=
(x,y)
=>
;
generator
生成器的用法和python差不多,使用function*定義
使用生成器有兩種方法function* gen(
)return
;}
1、使用next()函式
這種方法會返回乙個字典,並且需要自己判斷是否讀取完所有的值var f =
gen();
f.next()
;//返回
...f.
next()
;//
2、使用for … of:
這種方法和python一樣,不詳述。
Fabric private data基本概念
fabric private data利用sidedb來儲存私有資料,相當於在通道之上又提供了一層更細粒度的資料隱私保護機制。本文將介紹fabric private data的引入目的 基本概念與應用場景。目前在hyperledger fabric中實現資料隱私的方法是使用通道。但是官方並不孤立為了...
Fabric private data基本概念
fabric private data利用sidedb來儲存私有資料,相當於在通道之上又提供了一層更細粒度的資料隱私保護機制。本文將介紹fabric private data的引入目的 基本概念與應用場景。目前在hyperledger fabric中實現資料隱私的方法是使用通道。但是官方並不孤立為了...
HyperLedger Fabric基本概念
源自 提供共識服務的網路節點,例如,使用kafka或pbft 維護賬本的網路節點,通常在hyperledger fabric中擔任背書或者記賬角色。檢查交易的合法性,最終將交易提交到區塊鏈中。orderers peers comitter 三者之間關係如下圖所示 fabric中交易的處理過程 在整個...