我有一组构造函数的匿名函数,它们接受一个参数,然后用它来构建一个var。
template.foreach( template => template = new template(model))
我遍历数组并使用new关键字将每个函数构造成一个对象。
typeof
这似乎有效,因为当我在console.log时,它将模板显示为具有数据成员this.html的对象列表,并且其填充正确。
但是,当我尝试访问template [0] .html时,它返回undefined。
当我对列表中的元素执行grunt serve
时它表示功能,但浏览器将其显示为对象,最重要的是当我执行模板[0] .html时,尽管显示它,但它返回为未定义我控制台记录列表。
答案 0 :(得分:0)
应该是forEach()
而不是foreach()
你应该总是在你的功能中返回一些东西。
使用this
这是非常奇怪的方式,因为当您在数组中存储函数时,this
引用您调用此函数的对象。
答案 1 :(得分:0)
关键是forEach不会改变正在迭代的数组,它只是迭代它。如果要返回已创建对象的数组,可以使用其他函数,如map:
FROM node:boron
# Create app directory
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
# Set env
ENV PORT 3000
# Install app dependencies
ADD package.json /tmp/package.json
RUN cd /tmp && npm install
# Bundle app source
ADD . /usr/src/app
# Open port to access server
EXPOSE $PORT
# Execute as bash script to pass along env variables
CMD npm start
现在您可以访问myObjectArray [0] .html
请注意myObjectArray是一个新数组,模板不会更改。
顺便说一句,拥有一个名为模板的变量来保存一个数组并不是一个好习惯,最好称之为templateArray或模板(明确表示它是一个数组)