问题标签 [method-modifier]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 将函数添加到另一个函数 JavaScript 的范围内
我试图让下面的示例代码工作。
编辑(试图更清楚目标是什么):
我不想让函数中的所有函数和变量都可用obj
,因为它们在全局变量中可用。这不适用于浏览器。这适用于 Adobe ExtendScript,所以我只能使用 EcmaScript 3 和一些 polyfill。该文件由我提供并包含在文件之前。用户可以参考哪些功能可用,并且可以在和中使用它们。这实际上与P5.js所做的非常相似,但我正试图为 InDesign 实现这一点。我们当然可以调用. 目的是摆脱 ,让用户有可能只调用并获得. setup
draw
lib.js
user-script.js
setup
draw
obj.foo()
obj.
foo
obj.foo
这是 lib.js。它只是图书馆的一小部分来说明我手头的东西。
这可能是 user-script.js。我们提供的结构是:
- #include 用于库
- 函数设置(){}
- 函数绘制(){}
- obj.go() 作为一切的执行(以后可能会被删除)
我不能告诉用户在 setup 和 draw 中编写更多附加代码。用户的部分应该减少到可以手写,不需要使用样板或类似的东西。
感谢您的所有回答。我将审查它们并返回报告最终决定是什么。他们似乎都以不同的方式解决问题。我目前无法判断哪个是“正确”答案。那些我们似乎最接近我的问题的人得到了我的支持。
kotlin - 重写方法的 open 修饰符背后的推理
在Kotlin中重写方法时,必须声明定义方法的基类和方法本身open
。
重写方法后默认派生类final
,而重写方法open
默认。从参考文档:
标记为覆盖的成员本身是开放的,即它可以在子类中被覆盖。如果要禁止重新覆盖,请使用 final。
我想知道为什么Kotlin 团队做出了这个设计决定,而不是将重写的方法也设为 final,这是派生类和每个非重写方法的默认设置。搜索网络时找不到任何提示?
是否有人与此设计决策背后的推理有联系或可能会激发它?
java - Java 9 接口:为什么将默认修饰符转换为公共修饰符
我的问题是关于interface
. 我创建了一个接口并定义了四个方法:第一个方法是一个private
方法;二是default
方法;三是static
方法;第四是abstract
方法。
编译此接口并检查其配置文件后:default
方法被转换为public
方法,并且static
和abstract
方法都有一个前置public
修饰符。为什么是这样?
代码:
接口配置文件类