经过多年在C#工作多年后,我仍习惯使用JavaScript。
我有一个我想要实例化的对象。对象始终具有相同的7个字段。它习惯于将一组7个数字轻松传递给各种函数。
var myObj = {
4: 0,
6: 0,
8: 0,
10: 0,
12: 0,
20: 0,
100: 0
};
在EMCAScript 6中,class
已被定义,但从我在网络上发现的内容来看,class
似乎主要用于定义function
class
类似于EMCAScript 5 prototype
的{{1}},而不是用于定义字段。
这样做的正确方法是什么?
我现在的想法就是:
function
我不相信这是一个意见问题。在大多数语言中,有一种正确的方法可以做到这一点。
在C#中执行此操作的方式是
var myObj = function () {
this[4] = 0;
this[6] = 0;
this[8] = 0;
this[10] = 0;
this[12] = 0;
this[20] = 0;
this[100] = 0;
};
var obj = new myObj();
答案 0 :(得分:2)
“最佳”方式非常主观。你会在这里和整个网络上看到不同的回答。看看你的C#例子,如果你的目标是以面向对象的方式复制类似于那个类的东西,这可能是一个很好的起点
function MyObj () {
this.Fours = 0;
this.Sixes = 0;
this.Eights = 0;
this.Tens = 0;
this.Twelves = 0;
this.Twenties = 0;
this.Hundreds = 0;
this.RollDice = function() {
console.log('here is a function')
}
};
样本用法
var myObj = new MyObj();
console.log(myObj); // -- MyObj {Fours: 0, Sixes: 0, etc...
myObj.RollDice(); // -- here is a function
答案 1 :(得分:1)
在javascript中创建一个类似于您指定的结构的对象,并且能够重用该对象,尝试创建一个返回该对象模板的函数:
if (position == 3) {
getResources().openRawResourceFd(songs[current_index]);
myMediaPlayer.start();
}
javascript中有许多不同的创作模式,它只取决于您的需求。你需要一个对象层次结构吗?然后使用原型模式。你是否需要一个接受默认参数的对象创建,有点像构造函数?然后使用类似于我上面指定的实现,但修改它以接受defaultValues对象,该对象包含您需要指定的部分或全部属性。