2015-09-18 29 views

回答

14

由執行環境(如StringArray類,或setTimeout,或者瀏覽器的DOM)中提供的本機函數中C.被頻繁寫入(或搭載寫入其他功能)

+0

有什麼令我困惑的是,有一段直接在'內置函數'的函數下面,它說「內置函數的例子包括parseInt和Math.exp。一個實現可以提供本規範中沒有描述的依賴於實現的內置函數。「這看起來與前面的「功能」部分截然不同。 –

+0

@juwiley:大多數主機提供了ECMAScript規範未涉及的其他功能(例如,DOM或「控制檯」)。 – SLaks

+0

下面是一些閱讀材料,對那些對如何以及如何自己編寫這些類型的函數感興趣的人(對於Node):[1](https://github.com/kkaefer/node-cpp-modules),[2] (http://syskall.com/how-to-write-your-own-native-nodejs-extension/),[3](http://joseoncode.com/2012/04/10/writing-your-first -native-module-for-node-dot-js-on-windows /),[4](http://kkaefer.github.com/node-cpp-modules/),[5](http:// nkzawa .tumblr.com /後/ 46089897239 /如何到寫本機節點的插件)。 – sdgluck

9

在什麼情況下函數的代碼不會寫在ECMA腳本中?

JavaScript引擎提供的核心功能。例如。 Array.prototype.find

> Array.prototype.find 
find() { [native code] } 

例如V8,Chrome的JavaScript引擎,被實現C++,使得方法用C++實現。

+0

我認爲有許多在V8實現中寫入(特權)javascript的函數仍然被字符串化爲'[native code]' – Bergi