Re: [問題] 要怎麼取得所有的物件?

看板Ajax作者 (大嘴先生)時間10年前 (2015/05/20 16:23), 10年前編輯推噓3(305)
留言8則, 2人參與, 最新討論串2/3 (看更多)
※ 引述《LaPass (LaPass)》之銘言: : 就一般網頁上而言 : 我們知道有 window 這個物件可以用 : 然後可以對一些網頁視窗做操作 : 其他還有 document 等等 : 另外一種是已經存在的 function : 像是 alert() : 以及一些語言內建的物件 : 像是 Date JSON等等 : 請問有辦法「用程式」把現在的執行域下,可用的東西通通都列舉出來嗎? : 因為環境不一定是在網頁上 : 也有可能是在node.js : 甚至是java的 Rhino : 我想知道到底有哪些變數、function、物件可以用 (function(global) { var i; for (i in global) { console.log(i+":"); console.dir(global[i]); } }(this)) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.130.162.20 ※ 文章網址: https://www.ptt.cc/bbs/Ajax/M.1432110214.A.B02.html ※ 編輯: mrbigmouth (220.130.162.20), 05/20/2015 16:30:00

05/20 17:19, , 1F
你根本找不到function scope的那個 "global"
05/20 17:19, 1F

05/20 17:20, , 2F
只有跑在global下的code能這樣用
05/20 17:20, 2F
如果你無法肯定你的code是不是跑在global下可以用下面這方法 雖然通常不建議使用這類eval的code (function(global) { var i; for (i in global) { console.log(i+":"); console.dir(global[i]); } }((new Function("return this;"))());

05/20 17:41, , 3F
咦?雖然我記得有的JS引擎可以鎖global下的this,讓他變成
05/20 17:41, 3F

05/20 17:42, , 4F
null,但應該可以玩玩看 =V=
05/20 17:42, 4F

05/20 17:46, , 5F
global = {} QAQ
05/20 17:46, 5F

05/20 17:46, , 6F
環境是node.js
05/20 17:46, 6F
※ 編輯: mrbigmouth (220.130.162.20), 05/20/2015 18:03:05 ※ 編輯: mrbigmouth (220.130.162.20), 05/20/2015 18:03:23

05/20 18:13, , 7F
少一個括號。
05/20 18:13, 7F

05/20 18:14, , 8F
我試成功了,這就是我要的結果 XD
05/20 18:14, 8F
文章代碼(AID): #1LN4I6i2 (Ajax)
討論串 (同標題文章)
文章代碼(AID): #1LN4I6i2 (Ajax)