在定义类()中的方法()声明中定义的变量?在 Function() 中,您可以在本地声明变量。 但是当涉及到 Define Class() 中的 Method() 时,似乎没有规定在该方法范围内的瞬态局部变量。
这是否意味着在 Method() 中声明的任何变量在类外都是持久且可见的?
回复:在定义类()中的方法()声明中定义的变量?我承认我之前没有再看 JSL 课程就做出了回应。 自从他们第一次被介绍以来,我没有研究或使用过它们。 对于任何混淆,我深表歉意。
正如文档所述,没有私有成员、方法或函数。 我找不到任何声明私有属性的方法。
不,JMP 不提供单独的类和实例变量。
回复:在定义类()中的方法()声明中定义的变量?我越来越接近理解这一点,但是你能帮我做更多的事情吗?
(1) 类变量与实例变量:JSL 是否有这种区别,如果有,我如何制作一个或另一个变量?
(2) Private vs. public 实例变量:JSL 是否有这种区别,如果有,我如何将变量设为私有?
关于#2,我当然可以在变量上实现 Get/Set,但我不知道如何防止直接访问变量。
可能 JSL 类模型没有这些区别,这很好,但我只是想在脑海中弄清楚这一点。
回复:在定义类()中的方法()声明中定义的变量?对,我明白了。 我的情况是一些表达式将方法局部变量分配给涉及类级变量的计算。 我想如果我要使用 Local(),我只需在 Local 子句中的所有类级变量前面加上“this:”
但无论如何,根据我的实验,这可能没有必要。 我只是想感受一下在哪里可以看到什么。回复:在定义类()中的方法()声明中定义的变量?不,我的意思是在方法中使用 Local() 。
我认为您回答了自己的问题:使用 getter 和 setter 方法来管理实例或类属性的访问和控制。
回复:在定义类()中的方法()声明中定义的变量?也许。 当我在 Local() 中包装方法的内容时,它失败了——但我可以尝试命名空间限定所有类级变量。
实际上,我做了一个实验(在询问之前应该尝试过),看起来在方法内部声明的变量在外部是不可引用的,即使带有命名空间前缀也是如此。 因此,除非另有说明,否则在我看来它们是该方法的自动本地。
在一个更广泛的问题上,你会怎么做才能拥有一个“私有”变量的等价物。 假设您想让一个类变量只能通过 Get 方法访问?回复:在定义类()中的方法()声明中定义的变量?你不能在方法中使用 Local() 函数吗?