具有空值的多个属性的Var

时间:2015-10-20 07:41:07

标签: javascript

我正在尝试使用JavaScript创建一个带有几个空属性的var。在其他语言中(当然在swift中,但我也确定在其他语言中),这称为struct

我希望它看起来像这样:

myStruct {
    value1 : String,
    value2 : String
}

我发现最接近的是对象(JavaScript Objects),但是你必须添加值(据我所知)。

之后,我需要将myStruct添加到array。我希望这很清楚。实现这一目标的最有效方法是什么?

4 个答案:

答案 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。 这些链接可以帮助您了解您必须继续进行的操作。

  1. null and undefined

  2. Which one to use?