日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > javascript >内容正文

javascript

JSON 之 SuperObject(6): 方法

發(fā)布時(shí)間:2024/4/17 javascript 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JSON 之 SuperObject(6): 方法 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

SuperObject 的 JSON 對(duì)象中還可以包含 "方法", 這太有意思了; 其方法的格式是:

procedure Method(const This, Params: ISuperObject; var Result: ISuperObject);//另外, 這是其數(shù)據(jù)類(lèi)型的枚舉: TSuperType = (stNull, stBoolean, stDouble, stInt, stObject, stArray, stString, stMethod);


測(cè)試代碼:


unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls, Keyboard;typeTForm1 = class(TForm)Button1: TButton;Button2: TButton;procedure Button1Click(Sender: TObject);procedure Button2Click(Sender: TObject);end;varForm1: TForm1;implementation{$R *.dfm}uses SuperObject;//方法1; 參數(shù)列表是規(guī)定好的, 但這里沒(méi)使用參數(shù) procedure Method1(const This, Params: ISuperObject; var Result: ISuperObject); beginShowMessage('Hello'); end;//方法2; 這里使用了第二個(gè)參數(shù); 這里的第二個(gè)就是調(diào)用時(shí)的第一個(gè) procedure Method2(const This, Params: ISuperObject; var Result: ISuperObject); beginShowMessage(Params.AsJSon); end;//方法3; 這里使用了第一個(gè)參數(shù); 第一個(gè)參數(shù)值使用時(shí)無(wú)需傳遞, 它代表使用方法的對(duì)象本身 procedure Method3(const This, Params: ISuperObject; var Result: ISuperObject); beginShowMessage(This.AsJSon); end;//方法4; 這里使用了第三個(gè)參數(shù); 這是調(diào)用時(shí)的返回值, 如果不給它賦值, 調(diào)用時(shí)將無(wú)返回值 procedure Method4(const This, Params: ISuperObject; var Result: ISuperObject); beginResult := This;Result.Merge(Params, True); {合并} end;//第一種使用方法 procedure TForm1.Button1Click(Sender: TObject); varjo: ISuperObject; beginjo := SO('{"X":"Y"}');jo.M['jm1'] := @Method1;jo.M['jm2'] := @Method2;jo.M['jm3'] := @Method3;jo.M['jm4'] := @Method4;jo.call('jm1');? ? ? ? ? ? ? ? ? ? ? // Hellojo.call('jm2', SO('{"A":"B"}'));? ? // {"A":"B"}jo.call('jm2', '{"A":"B"}');? ? ? ? // {"A":"B"}jo.call('jm3');? ? ? ? ? ? ? ? ? ? ? // {"X":"Y"}jo.call('jm4', '{"B":null}');ShowMessage(jo.AsJSon);? ? ? ? ? ? ? // {"X":"Y","B":null} end;//第二種使用方法 procedure TForm1.Button2Click(Sender: TObject); vart,jo: ISuperObject; beginjo := SO('{"X":"Y"}');jo.M['jm1'] := @Method1;jo.M['jm2'] := @Method2;jo.M['jm3'] := @Method3;jo.M['jm4'] := @Method4;jo['jm1()'];? ? ? ? ? ? ? ? ? ? ? ? ? // Hellojo['jm2(' + '{"A":"B"}' + ')'];? ? ? ? // {"A":"B"}jo['jm2({A:B})'];? ? ? ? ? ? ? ? ? ? ? // {"A":"B"}jo['jm3()'];? ? ? ? ? ? ? ? ? ? ? ? ? // {"X":"Y"}jo['jm4(' + '{"B":null}' + ')'];ShowMessage(jo.AsJSon);? ? ? ? ? ? ? ? // {"X":"Y","B":null} end;end.

轉(zhuǎn)載于:https://www.cnblogs.com/cpprun/p/4787963.html

總結(jié)

以上是生活随笔為你收集整理的JSON 之 SuperObject(6): 方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。