如何在 DWScipt 中初始化一个对象?
How to initialize an object in DWScipt?
请问这段 JS 代码在 DWScript 中的等价物是什么?
我使用 DWScript 代码生成器。
// JavaScript:
DoIt({name:"Fred", size:{width:3,height:2}});
我试过匿名记录,但似乎不起作用:
var obj: variant;
obj := record
Name = 'Fred';
Size: variant = record
Width = 3;
Height = 2;
end;
end;
使用DWScript Codegen生成的JS代码为:
var obj = undefined,
/// anonymous TRecordSymbol
function Copy$a0(s,d) {
return d;
}
function Clone$a0($) {
return {
}
}
function Pub$a0($) {
return {
"Name":$.Name
,"Size":$.Size
}
}
/// anonymous TRecordSymbol
function Copy$a1(s,d) {
return d;
}
function Clone$a1($) {
return {
}
}
function Pub$a1($) {
return {
"Width":$.Width
,"Height":$.Height
}
}
obj = {Name:"Fred",Size:3};
alert(JSON.stringify(obj));
我会给你一个例子来帮助你回答你自己的问题
首先,创建一个新类型,类似于:
type
TDimensions = record
published
Width: integer;
Height: integer;
end;
接下来,您需要以某种方式使用它。想象一下,您单击一个按钮,从几个输入字段中收集了一堆数据,您清理了您的输入并发送了它。首先使用类似的东西:
procedure TForm1.ButtonClickHandler(Sender: TObject);
var
dimensions: TDimensions;
payload: Variant;
serialized: String;
begin
dimensions.width := StrToInt(self.W3EditBox2.Text);
dimensions.height := StrToInt(self.W3EditBox3.Text);
payload := TVariant.CreateObject;
payload.name := self.W3EditBox1.Text;
payload.size := dimensions;
asm
@serialized = JSON.stringify(@payload);
end;
writeln(serialized);
end;
请问这段 JS 代码在 DWScript 中的等价物是什么? 我使用 DWScript 代码生成器。
// JavaScript:
DoIt({name:"Fred", size:{width:3,height:2}});
我试过匿名记录,但似乎不起作用:
var obj: variant;
obj := record
Name = 'Fred';
Size: variant = record
Width = 3;
Height = 2;
end;
end;
使用DWScript Codegen生成的JS代码为:
var obj = undefined,
/// anonymous TRecordSymbol
function Copy$a0(s,d) {
return d;
}
function Clone$a0($) {
return {
}
}
function Pub$a0($) {
return {
"Name":$.Name
,"Size":$.Size
}
}
/// anonymous TRecordSymbol
function Copy$a1(s,d) {
return d;
}
function Clone$a1($) {
return {
}
}
function Pub$a1($) {
return {
"Width":$.Width
,"Height":$.Height
}
}
obj = {Name:"Fred",Size:3};
alert(JSON.stringify(obj));
我会给你一个例子来帮助你回答你自己的问题
首先,创建一个新类型,类似于:
type
TDimensions = record
published
Width: integer;
Height: integer;
end;
接下来,您需要以某种方式使用它。想象一下,您单击一个按钮,从几个输入字段中收集了一堆数据,您清理了您的输入并发送了它。首先使用类似的东西:
procedure TForm1.ButtonClickHandler(Sender: TObject);
var
dimensions: TDimensions;
payload: Variant;
serialized: String;
begin
dimensions.width := StrToInt(self.W3EditBox2.Text);
dimensions.height := StrToInt(self.W3EditBox3.Text);
payload := TVariant.CreateObject;
payload.name := self.W3EditBox1.Text;
payload.size := dimensions;
asm
@serialized = JSON.stringify(@payload);
end;
writeln(serialized);
end;