[問題] eval函式的運作

看板Ajax作者 (QQ)時間17年前 (2007/04/06 15:49), 編輯推噓5(503)
留言8則, 2人參與, 最新討論串1/1
eval函式的功能不是將字串轉為運算式在傳回結果嗎?? 但是這個範例我有點搞糊塗了 在下面程式碼的最後 他是由很多變數名稱串起來的如:doc ,sty... 另外中間還有 ".top =" 我一開始是想這個eval函式是把 doc到 ".top ="這部份串起來 可是又感覺怪怪的... 以下是部分程式碼 希望高手能給個指導 -- <style type="text/css"> <!-- .tooltiptitle{COLOR: #FFFFFF; TEXT-DECORATION: none; CURSOR: Default; font-family: 新明細體; font-weight: bold; font-size: 8pt} .tooltipcontent{COLOR: #000000; TEXT-DECORATION: none; CURSOR: Default; font-family: 新明細體; font-size: 15pt} #ToolTip{position:absolute; width: 100px; top: 0px; left: 0px; z-index:4; visibility:hidden;} --> </style> <script language = "javascript"> <!-- var ie = document.all ? 1 : 0;//取得HTML所有標籤物件 var ns = document.layers ? 1 : 0; var initialize = 0; var Ex, Ey, topColor, subColor, ContentInfo; if(ie){doc = "document.all."; sty = ".style"} if(ie){ Ex = "event.x"; Ey = "event.y"; topColor = "#000000"; subColor = "#3399CC"; } function MoveToolTip(layerName, FromTop, FromLeft, e){ if(ie){eval(doc + layerName + sty + ".top = " + (eval(FromTop) + document.body.scrollTop))} 完整程式碼: http://www.cs.ccu.edu.tw/~u93410059/test.rar -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.224.79.248 ※ 編輯: bryanliu 來自: 61.224.79.248 (04/06 16:07)

04/06 16:56, , 1F
串起來是指定運算式,然後eval這行指定運算式
04/06 16:56, 1F
※ 編輯: bryanliu 來自: 61.224.147.112 (04/06 17:02)

04/06 17:44, , 2F
所以他是把 ".top ="後面的東西assign給前面那一個物件就
04/06 17:44, 2F

04/06 17:45, , 3F
是了??
04/06 17:45, 3F

04/06 18:29, , 4F
不是,是合併起來是一個字串,寫著完整的指定式
04/06 18:29, 4F

04/06 18:30, , 5F
最後,(左邊的)eval將字串解譯成正確的指定式
04/06 18:30, 5F

04/06 20:19, , 6F
所以eval函式裡面有assign敘述的話 只會變成完整的assign
04/06 20:19, 6F

04/06 20:20, , 7F
的敘述 不會直接把右邊的直傳給左邊 是這樣嗎??
04/06 20:20, 7F

04/06 23:15, , 8F
eval只有一個功能,把正確的文字轉換成運算式
04/06 23:15, 8F
文章代碼(AID): #165VkZGM (Ajax)
文章代碼(AID): #165VkZGM (Ajax)