gpt4 book ai didi

javascript - 具有空值的多个属性的 Var

转载 作者:行者123 更新时间:2023-12-03 08:35:20 25 4
gpt4 key购买 nike

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

我希望它看起来像这样:

myStruct {
value1 : String,
value2 : String
}

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

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

最佳答案

方法一:

实现这一目标的最简单方法是将newFunction 结合使用。构造函数。

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

使用调用方法。通过这种方法,您可以动态添加 Prop 。每当您想要向具有空值或默认值的对象添加几个 props 时,您都可以使用此方法。

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 fiddle - http://www.es6fiddle.net/ifz3rjcc/

在所有情况下,更改属性都是相同的。要更改 prop1 的值,您所要做的就是

myStructObj.prop1 = "my val";

关于javascript - 具有空值的多个属性的 Var,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33230753/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com