溫故而知新,可以為濕矣
首先請大家記住這個 V8 的在線手冊――http://izs.me/v8-docs/main.html。
還記得上次的 building.gyp 文件嗎?
就像這樣,舉一反三,如果多幾個 *.cc 文件的話就是這樣的:
"sources": [ "addon.cc", "myexample.cc" ]
上次我們把倆步驟分開了,實際上配置和編譯可以放在一起的:
$ node-gyp configure build
復習完了嗎?沒?!
好的,那我們繼續吧。
表番
函數參數
現在我們終于要講參數了呢。
讓我們設想有這樣一個函數 add(a, b) 代表把 a 和 b 相加返回結果,所以先把函數外框寫好:
Handle<Value> Add(const Arguments& args)
{
HandleScope scope;
//... 又來!
}
Arguments
這個就是函數的參數了。我們不妨先看看 v8 的官方手冊參考。
•int Length() const
•Local<Value> operator[](int i) const
其它的我們咱不關心,這兩個可重要了!一個代表傳入函數的參數個數,另一個中括號就是通過下標索引來訪問第 n 個參數的。
所以如上的需求,我們大致就可以理解為 args.Length() 為 2,args[0] 代表 a 以及 args[1] 代表 b 了。并且我們要判斷這兩個數的類型必須得是 Number。
注意到沒,中括號的索引操作符返回結果是一個 Local<Value> 也就是 Node.js 的所有類型基類。所以傳進來的參數類型不定的,我們必須得自己判斷是什么參數。這就關系到了這個 Value 類型的一些函數了。
•IsArray()
•IsBoolean()
•IsDate()
•IsFunction()
•IsInt32()
•IsNativeError()
•IsNull()
•IsNumber()
•IsRegExp()
•IsString()
•...
我就不一一列舉了,剩下的自己看文檔。。:.゚
主站蜘蛛池模板:
张家川|
信宜市|
寿宁县|
金门县|
罗源县|
阿瓦提县|
平和县|
綦江县|
神木县|
河东区|
江川县|
府谷县|
湛江市|
宁海县|
航空|
随州市|
嘉兴市|
利辛县|
济源市|
高台县|
师宗县|
广宗县|
沧源|
花莲县|
澄城县|
佛坪县|
霍山县|
江北区|
孙吴县|
甘孜|
长沙市|
阜南县|
丹寨县|
平湖市|
广平县|
达日县|
衡山县|
绥棱县|
芦溪县|
吉木萨尔县|
洛川县|