国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

用C/C++來實現 Node.js 的模塊(二)

2019-11-20 14:06:36
字體:
來源:轉載
供稿:網友

溫故而知新,可以為濕矣

  首先請大家記住這個 V8 的在線手冊――http://izs.me/v8-docs/main.html。

  還記得上次的 building.gyp 文件嗎?

復制代碼 代碼如下:

{
  "targets": [
    {
      "target_name": "addon",
      "sources": [ "addon.cc" ]
    }
  ]
}

   就像這樣,舉一反三,如果多幾個 *.cc 文件的話就是這樣的:
"sources": [ "addon.cc", "myexample.cc" ]

   上次我們把倆步驟分開了,實際上配置和編譯可以放在一起的:
$ node-gyp configure build

   復習完了嗎?沒?!

  好的,那我們繼續吧。

表番

函數參數

  現在我們終于要講參數了呢。

  讓我們設想有這樣一個函數 add(a, b) 代表把 a 和 b 相加返回結果,所以先把函數外框寫好:

復制代碼 代碼如下:

#include <node.h>
using namespace v8;

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()
•...
 
  我就不一一列舉了,剩下的自己看文檔。。:.゚

主站蜘蛛池模板: 张家川| 信宜市| 寿宁县| 金门县| 罗源县| 阿瓦提县| 平和县| 綦江县| 神木县| 河东区| 江川县| 府谷县| 湛江市| 宁海县| 航空| 随州市| 嘉兴市| 利辛县| 济源市| 高台县| 师宗县| 广宗县| 沧源| 花莲县| 澄城县| 佛坪县| 霍山县| 江北区| 孙吴县| 甘孜| 长沙市| 阜南县| 丹寨县| 平湖市| 广平县| 达日县| 衡山县| 绥棱县| 芦溪县| 吉木萨尔县| 洛川县|