2016-05-17 71 views
0

fs.js的代碼段,例如:PhantomJS中的「出口」在哪裏定義?

exports.write = function (path, content, modeOrOpts) { 
    var opts = modeOrOptsToOpts(modeOrOpts); 
    // ensure we open for writing 
    if (typeof opts.mode !== 'string') { 
     opts.mode = 'w'; 
    } else if (opts.mode.indexOf('w') == -1) { 
     opts.mode += 'w'; 
    } 
    var f = exports.open(path, opts); 

    f.write(content); 
    f.close(); 
}; 

現在我很困惑與exports對象。你可以在每個PhantomJS模塊中找到它,但我沒有發現在哪裏定義exports對象。

任何人都可以給我一些關於定義exports對象的地方的建議嗎?


不要與NodeJS中的exports混淆。這是PhantomJS ...

+0

http://stackoverflow.com/questions/9901082/what-is-this-javascript-require 它是一個對象,通過要求其 –

回答

1

的phantomJS實施require語法(同NodeJS

如果要包括外部庫,該庫被注入module對象和module.exports是公共對象的要求函數返回。

//myMoudle.js 

var _a = 5; //this is private member of the module 

module.exports= { 
    a :()=>{ 
     return _a; 
    }, 
    setA : newA=>_a=newA; 
} 

的要求:

//someCode.js 
var myModule = require('path/to/myModule') 
myModule.a() //5 
myModule._a //undefined 
myModule.setA(6) //_a is now 6 

PhantomJS文檔例如 requiring webpage module:

var webPage = require('webpage'); //included the module https://github.com/ariya/phantomjs/blob/master/src/modules/webpage.js 
var page = webPage.create(); 

包括網頁模塊,這個模塊裏面有下一個代碼

exports.create = function (opts) { 
    return decorateNewPage(opts, phantom.createWebPage()); 
}; 

,允許使用在這裏我們使用了require功能webPage.create功能

+0

注入模塊「phantomJS實現需要語法」,你能告訴我在PhantomJS中實現'require'語法的代碼嗎? – Sayakiss

+0

@Sayakiss在我的回答中加入了 –

+0

我仍然感到困惑......在我看來,'require'是一個函數,所以它應該在某處定義(但我找不到)......'exports'是一個對象,所以它應該在某個地方定義(但我找不到)......這真是讓我困擾...... – Sayakiss