【发布时间】:2014-06-04 16:50:34
【问题描述】:
我的程序中有一些基本的对象类。它们具有函数和数据字段。我刚刚意识到,如果我在 construct 方法之外声明一些默认数据字段值,那么它们将不会在 object = new Class params 类型的初始化时被重置。
class Book extends DBNode
language: 'en'
title: ''
year: 0
# function
bookReaded: (callback)->
# db stuff
callback()
ie:在这种情况下,创建一个新的 Book obj 然后编辑其标题将导致以下实例被初始化,标题字段已设置为最后一个实例的值。
class Book extends DBNode
constructor: ->
@language: 'en'
@title: ''
@year: 0
super(props, user, cb)
# function
bookReaded: (callback)->
# db stuff
callback()
而在这种情况下,字段每次都会正确重置,并且标题字段将在每次初始化时设置为空白。
嗯 - 你会说 - 很明显:它们是原型。你会说。我明白了……现在。
不管怎样,这件事对我来说还是有点模糊,所以我想问一下,仅仅在构造函数中声明所有变量字段是否足以提供所需的所有跨实例安全性,或者是否还有其他一些事情应该是在处理原型而不是简单对象时请牢记。
当我在服务器端使用它时,我主要关心的是同时执行可能会弄乱这种全局范围情况的东西,以及我是否应该考虑只使用普通对象(我确实使用了继承在某些功能上具有优势,但没有几行代码无法实现)...
【问题讨论】:
-
“重置”是什么意思?那应该是小写的
new吗?您能否发布一些示例代码? -
谢谢,我按照建议提供了代码示例