在一个NodeJS项目上工作,我遇到了这个非常意想不到的行为,我无法解决这个问题 - 这对我来说似乎是一个错误,但也许我只是误解了NodeJS模块的运作方式.
我把它简化为一个测试用例如下:
mod.js模块
exports.process = function(obj) { obj.two = 'two'; };
test.js文件
var testObj = {one: 'one'}; console.log(['Before:', testObj]); var cachedObj = testObj; require('./mod').process(cachedObj); console.log(['After:', testObj]);
然后跑步$ node test.js
给我这个:
[ 'Before:', { one: 'one' } ] [ 'After:', { one: 'one', two: 'two' } ]
我正在分配testObj
to 的值cachedObj
,并且testObj
永远不会传递给模块方法.testObj
应该(据我所知)永远不会被修改.
事实上,cachedObj
肯定永远不会被修改,因为它永远不会从mod.process
方法返回.我哪里错了?
(运行节点0.6.9)
我知道我们可以将图像加载到画布中,但我想知道我们是否能够将简单的HTML文件加载到画布中.如果有,怎么样?
谢谢.