Javascript Coffeescript类变量字段-保持初始化干净

Javascript Coffeescript类变量字段-保持初始化干净,javascript,coffeescript,Javascript,Coffeescript,我的程序中有一些基本的对象类。它们包含函数和数据字段。我刚刚意识到,如果我在construct方法之外声明一些默认数据字段值,那么它们将不会在object=new Class params类型的初始化中重置 class Book extends DBNode language: 'en' title: '' year: 0 # function bookReaded: (callback)-> # db stuff callback() ie:在

我的程序中有一些基本的对象类。它们包含函数和数据字段。我刚刚意识到,如果我在
construct
方法之外声明一些默认数据字段值,那么它们将不会在
object=new Class params
类型的初始化中重置

class Book extends DBNode

  language: 'en'
  title: ''
  year: 0

  # function
  bookReaded: (callback)->

    # db stuff
    callback()
ie:在这种情况下,创建一个新书obj,然后编辑其标题将导致以下实例初始化,其中标题字段已设置为最后一个实例的值

class Book extends DBNode

  constructor: ->

    @language: 'en'
    @title: ''
    @year: 0
    super(props, user, cb)

  # function
  bookReaded: (callback)->

    # db stuff
    callback()
而在这种情况下,字段每次都会正确重置,并且每次初始化时标题字段都会设置为空白

class Book extends DBNode

  language: 'en'
  title: ''
  year: 0

  # function
  bookReaded: (callback)->

    # db stuff
    callback()
你会说,很明显,它们是原型。你会说。我明白了。。。现在

无论如何,这件事对我来说还是有点模糊,所以我想问一下,仅仅在构造函数中声明所有变量字段是否足以提供所需的所有跨实例安全性,或者在处理原型而不是简单对象时是否应该记住其他一些事情

当我使用IT服务器端时,我主要关心的是同时执行可能会破坏这种全局范围情况的东西,以及我是否应该考虑只使用正常对象(我确实在某些函数中使用继承优势,但是用几行额外的代码不能实现的东西)……< 在构造函数中声明所有变量字段是否足以提供所需的所有跨实例安全性

这不是安全问题,而是功能问题。但是,是的,如果在构造函数中分配所有可变属性,那么就安全了(对于示例中的原语值,这实际上没有什么区别)

当我使用it服务器端时,我主要关心的是同步执行东西

JavaScript中没有同时执行代码。甚至在服务器端也没有

我应该考虑只使用正常对象(我在某些函数中使用继承优势,但是用两行额外代码不能实现的东西)…< /P>


不是。继承的目的是保存这些代码行。此外,通过在原型上添加方法,您可以提高代码的性能。

您所说的“重置”是什么意思?这应该是小写的
new
?你可以发布一些示例代码吗?谢谢你,我提供了一个代码示例作为建议我很抱歉。谢谢你的回答!最后一点澄清:新原型将是上一个原型的克隆,但旧原型将保留其属性,即使全局原型在初始化后可能会更改(例如回调或诸如此类)?否。每次创建
新类
对象时,它都将从同一个对象继承(单个)
Class.prototype
object。这个对象通常不会改变,只有实例会改变。