uncaught typeError无法读取undefined的属性

时间:2016-03-24 20:38:19

标签: javascript module

我有两个javascript.One用于读取图像文件,我称之为' register.js'。我有一个像以下的js模块

var FileUpload = (function (fileElement) {
  //code goes here other functions and stuff
  function fileread (event) {
    //code goes here
  }

  return {
    files: fileread // assign fileread as property and return
  };  
}(document.getElementById('up')))

我添加了另一个名为' call.js'当' onChange'时将使用FileUpload对象来读取文件。事件发生

function load () {
  console.log(FileUpload.files);
  document.getElementById('up').addEventListener('change', FileUpload.files,false);
}

window.onload=load;

但无论我在哪里运行代码,都会出现以下错误。我如何解决这个错误?

  

创建:115未捕获的TypeError:无法读取属性'文件'的   未定义

2 个答案:

答案 0 :(得分:0)

我猜你忘了使用module.exportsrequire。在register.js结束时,添加:

module.exports = FileUpload;

call.js开头,添加:

var FileUpload = require('./register');

您需要将./register更改为register.js的目录。可以省略.js扩展名,因为节点假定是javascript文件。

答案 1 :(得分:0)

这是问题所在:

return
      {
         files:fileread// assign fileread as property and return
      };  

Javascript中的分号是可选的,因此它不知道您要返回{files:fileread} 。它认为return是一个声明而 {files:fileread}; 是一个不同的声明。

改变这一点,一切都应该有效:

return {
    files:fileread// assign fileread as property and return
};