我正在尝试使用JavaScript创建一个带有几个空属性的var
。在其他语言中(当然在swift中,但我也确定在其他语言中),这称为struct
。
我希望它看起来像这样:
myStruct {
value1 : String,
value2 : String
}
我发现最接近的是对象(JavaScript Objects),但是你必须添加值(据我所知)。
之后,我需要将myStruct
添加到array
。我希望这很清楚。实现这一目标的最有效方法是什么?
答案 0 :(得分:1)
方法1:
最简单的方法是将 new 与Function构造函数结合使用。
var myStruct = function(prop1,prop2){
this.prop1 = prop1;
this.prop2 = prop2;
}
var myStructObj = new myStruct();
var myStructObj2 = new myStruct("prop1","prop2");
var myArr = [];
myArr.push(myStructObj);
myArr.push(myStructObj2);
console.log(myArr);

增强功能是将默认参数添加到构造函数并在创建时传递参数。
var myStruct = function(arg1, arg2){
var prop1 = arg1 || "defaultProp1Value";
var prop2 = arg2 || "defaultProp2Value";
this.prop1 = prop1;
this.prop2 = prop2;
}
var myStructObj1 = new myStruct();
//myStructObj1.prop1 is "defaultProp1Value"
//myStructObj1.prop2 is "defaultProp2Value"
var myStructObj2 = new myStruct("prop1");
//myStructObj2.prop1 is "prop1"
//myStructObj2.prop2 is "defaultProp2Value"
var myArr = [];
myArr.push(myStructObj1);
myArr.push(myStructObj2);

使用 ES6 ,您可以执行此操作,现在可以将默认参数添加到构造函数中。
//This only works in ES6
// Will cause errors on browsers which have not yet added support
// WIll work when used along with a transpiler like Babel
var myStruct = function(arg1 = "defaultProp1", arg2 = "defaultProp2"){
this.prop1 = arg1;
this.prop2 = arg2;
}
var myStructObj1 = new myStruct();
//myStructObj1.prop1 is "defaultProp1Value"
//myStructObj1.prop2 is "defaultProp2Value"
var myStructObj2 = new myStruct("prop1");
//myStructObj2.prop1 is "prop1"
//myStructObj2.prop2 is "defaultProp2Value"
var myArr = [];
myArr.push(myStructObj1);
myArr.push(myStructObj2);
console.log(myArr);
您可以阅读更多相关信息here
方法:2
使用 调用 方法。使用这种方法,您可以动态添加道具。每当您想要使用空值或默认值向对象添加几个道具时,您可以使用此方法。
var addPropsFunction = function(a,b){
this.prop1 = a;
this.prop2 = b;
}
var myObj1 = {};
var myObj2 = {};
addPropsFunction.call(myObj1);
addPropsFunction.call(myObj2,"val1","val2");
console.log(myObj1);
console.log(myObj2);

方法:3
ES6课程
class myStruct{
constructor(prop1,prop2){
this.prop1 = prop1;
this.prop2 = prop2;
}
}
var myObj = new myStruct();
console.log(myObj);
Es6小提琴 - http://www.es6fiddle.net/ifz3rjcc/
在所有情况下,更改属性都是相同的。 要改变prop1的值,你所要做的就是
myStructObj.prop1 = "my val";
答案 1 :(得分:0)
null是一个值,表示没有值"。为属性分配null会产生您需要的内容。
答案 2 :(得分:0)
你可以做到
dbo
(这些值可以为null) 或者您可以如上所述声明您的对象 并做:
myArray.push(yourObject)
答案 3 :(得分:0)
我想现在你知道如何创建struct in JS。
现在,用空值初始化属性:
您必须根据您的要求使用null或undefined。
这些链接可以帮助您了解您必须继续进行的操作。