在 Define Class() 中的 Method() 聲明中定義的變量?在 Function() 中,您可以聲明局部變量。 但是當涉及到 Define Class() 中的 Method() 時,似乎沒有規定方法內的瞬態局部變量範圍。
這是否意味著在 Method() 中聲明的任何變量在類外部都是持久的和可見的?
回复:在 Define Class() 中的 Method() 聲明中定義的變量?我承認我之前沒有再看JSL Classes就回復了。 自從它們首次被介紹以來,我還沒有研究或使用過它們。 對於任何混淆,我深表歉意。
正如文檔所述,沒有私有成員、方法或函數。 我找不到任何方法來聲明私有屬性。
不,JMP 不提供單獨的類和實例變量。
回复:在 Define Class() 中的 Method() 聲明中定義的變量?我越來越接近於理解這一點,但你能幫我做更多的事情嗎?
(1) 類變量與實例變量:JSL 有這種區別嗎?如果有,我該如何創建一個變量?
(2) 私有實例變量與公共實例變量:JSL 有這種區別嗎?如果有,我如何將變量設為私有?
關於#2,我當然可以在變量上實現 Get/Set,但我不知道如何防止直接訪問變量。
可能 JSL 類模型沒有這些區別,這很好,但我只是想在腦海中弄清楚這一點。
回复:在 Define Class() 中的 Method() 聲明中定義的變量?對,我明白了。 我有一種情況是一些表達式將方法局部變量分配給涉及類級變量的計算。 我想如果我要使用 Local(),我會在 Local 子句中為所有類級變量添加前綴“this:”
但是無論如何,根據我的實驗,這可能是沒有必要的。 我只是想感受一下在哪裡可以看到什麼。回复:在 Define Class() 中的 Method() 聲明中定義的變量?不,我的意思是在方法內部使用 Local()。
我認為您回答了自己的問題:使用 getter 和 setter 方法來管理實例或類屬性的訪問和控制。
回复:在 Define Class() 中的 Method() 聲明中定義的變量?或許。 當我將方法的內容包裝在 Local() 中時,它失敗了——但我可以嘗試使用名稱空間限定所有類級變量。
實際上,我做了一個實驗(在問之前應該試過),看起來在方法內部聲明的變量在外部不可引用,即使有命名空間前綴。 所以在我看來,除非另有說明,否則它們對方法來說是自動的。
在更廣泛的問題上,你會怎麼做才能擁有相當於“私有”變量的東西。 假設您想使類變量只能通過 Get 方法訪問?回复:在 Define Class() 中的 Method() 聲明中定義的變量?不能在方法中使用 Local() 函數嗎?