블로그 이미지
안녕1999

카테고리

전체 (3067)
자바스크립트 (20)
안드로이드 (14)
WebGL (4)
변비 (17)
정치,경제 (35)
C언어,ARM (162)
컴퓨터(PC, Note Book, 윈.. (41)
전자회로, PCB (27)
유머,안웃긴,GIF,동영상 (118)
국부론60 (71)
모듈(PCB) (3)
건강 (2)
FreeCAD (25)
PADS (43)
퇴직,퇴사,구직,취업 활동 (3)
C# (86)
엑셀 (8)
워드 (0)
LabView (6)
레고 (30)
FPGA (0)
Total
Today
Yesterday

달력

« » 2024.5
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

공지사항

최근에 올라온 글

'구조체'에 해당되는 글 1건

  1. 2017.03.01 자바스크립트 - 구조체 struct

자바스크립트에서는 구조체가 없다.

함수로 비슷하게 사용하는 방법이다.

또한, 이 방법은 static 변수를 지원하지않는 자바에서, static과 유사한 기능을 제공해준다.


예1)

function struct_Object()

var value,data;//값을 대입해봐야, 효과가 없다. new 이후에 넣어주어야 한다.

}

function new_Object()

var a=new struct_Object();

a.value=0;

a.data="";

return a;

}

var my_struct=new struct_Object();


my_struct.value=1;

my_struct.data="문자열 데이터";



예2)

function struct_Object()

var value,data,control,rect;

}

function new_Object()

{

var a=new struct_Object();

a.value=0;

a.data="temp111";

a.control=new_Control();

a.rect=new_RECT();

return a;

}



function은 Object개념이된다. c언어에서는 코드에 불과한 함수가, 자바에서는 모든 객체를 보관하는 Object개념인것이다.

function 내부에 있는 경우에는 지역변수이나, new로 생성하면, 창이 닫힐때까지 존재한다.

function 내부의 지역변수는 function 클래스의 멤버변수라 볼 수 있고, 휘발성이나, new로 만들면, 휘발성이 아니게 된다.


문제점들

===================

struct안에 struct가 포함된 구조로 코드를 작성하였으나,

- 개발툴이 자바언어를 지원하지 않는 C언어 개발툴이라, 멤버작성에 어려움이 있었다.

  C언어 개발툴에서는 '.'을 찍으면, 멤버변수를 선택할 수 있어,

  오타없이 코드작성이 가능하였으나, 이런 기능이 없어, 오타가 많이 발생한다.

- new를 사용하여, struct안에 struct를 class처럼 사용했으나, 코드 오타때문인지, undefined으로 나타난다.

  =>new로 생성후, 초기값을 넣어주어야 한다. 

      "function struct_Object()"함수에서는 초기값을 넣어주어도 효과가 없다. new_Object()함수가 필요.

- new를 사용하는 방식은 변수의 존재를 보장하지 못한다는 글이 있었다.

  아래 방식이 좋다고 한다.

var array = []; // empty array


// object literal notation to create your structures
array.push({ name: 'abc', value: 'def' });
array.push({ name: 'ghi', value: 'jkl' });


아래 방법으로 성공

function new_my_struct()

{

var i,a={i:[],o:[]};

for(i=0;i<4;i++)

{

a.i[i]={level:i,vol:0};

a.o[i]={level:0,vol:0};

}

return a;

}

Posted by 안녕1999
, |

최근에 달린 댓글

글 보관함