国产探花免费观看_亚洲丰满少妇自慰呻吟_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()
•...
 
  我就不一一列舉了,剩下的自己看文檔。。:.゚

主站蜘蛛池模板: 民权县| 江永县| 遂宁市| 板桥市| 凌源市| 介休市| 襄垣县| 崇信县| 新疆| 镇赉县| 资兴市| 缙云县| 龙海市| 宝丰县| 伊吾县| 竹北市| 诸城市| 巨鹿县| 政和县| 枣阳市| 晋宁县| 哈巴河县| 贵州省| 阿图什市| 沈阳市| 元阳县| 德钦县| 绥阳县| 古交市| 彭山县| 汉沽区| 平邑县| 萨嘎县| 卓资县| 林西县| 翁牛特旗| 沁阳市| 永兴县| 云阳县| 玉树县| 濉溪县|