溫故而知新,可以為濕矣
首先請大家記住這個 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()
•...
我就不一一列舉了,剩下的自己看文檔。。:.゚亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb