带有数组的 JavaScript 类是静态的
A javascript class with an array is static
我正在使用coffeescript来创建以下类:
class User
userId: 0
rooms: new Array()
当我创建类的新实例并向数组中添加某些内容时,任何新实例也包含相同的数组。生成的 javascript 是:
var User;
User = (function() {
User.name = 'User';
function User() {}
User.prototype.userId = 0;
User.prototype.rooms = new Array();
return User;
})();
如何设计每次实例化类时都有新空数组的类?
您希望userId
和rooms
位于this
上,而不是在原型上,否则所有实例都将共享它们。
class User
constructor: (@userId = 0, @rooms = []) ->
u = new User 1, [1,2]
u2 = new User 2, [3,4]
alert "#{ u.userId } #{ u.rooms } #{u2.userId} #{u2.rooms}"
在这里试试。
@
只是意味着this.
。
构造函数行做了很多事情。 它定义了一个构造函数
1) 将传递的值设置为对象(而不是原型
)上的userId
和rooms
2) 如果未提供每个属性,则为每个属性提供默认值。
注意 我什至不必在构造函数中执行任何其他操作。 一定要点击链接,这样你就可以看到这个例子创建的javascript。
相关文章:
- JavaScript命名约定;静态“;类或模块
- 无法理解JavaScript中的静态方法
- Javascript,从静态函数中打印全局对象
- 带静态字符e输入的文本框数字和带javascript的负整数
- 在Hapi.js中提供静态JavaScript文件不起作用
- 静态html中图像之间的空间在javascript中消失
- 调用Javascript中的Python函数,读取静态文件(Flask)
- 如何在javascript中获取静态公用文件夹中的文件列表
- 只使用常量的静态javascript函数会被编译为常量吗
- 如何理解“当类实例化时,JavaScript静态方法也是不可调用的”
- 在部署时刷新静态 JavaScript 文件
- 解析静态 JavaScript 依赖项的最佳实践
- 静态 JavaScript 变量,用作 Angularjs 控制器中的计数器
- 如何在静态Javascript中嵌入EJS代码
- IIS7 ASP.NET MVC静态JavaScript文件缓存
- 将静态javascript函数转换为动态函数
- 使用String键和String值声明静态Javascript映射的正确方法
- 我如何在Django应用程序的静态Javascript上播放静态mp3文件
- 在web2py中包含静态javascript
- Django静态Javascript资产与JQuery函数