问题标签 [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.

0 投票
11 回答
2002 浏览

javascript - 将函数添加到另一个函数 JavaScript 的范围内

我试图让下面的示例代码工作。
编辑(试图更清楚目标是什么):

我不想让函数中的所有函数和变量都可用obj,因为它们在全局变量中可用。这不适用于浏览器。这适用于 Adob​​e ExtendScript,所以我只能使用 EcmaScript 3 和一些 polyfill。该文件由我提供并包含在文件之前。用户可以参考哪些功能可用,并且可以在和中使用它们。这实际上与P5.js所做的非常相似,但我正试图为 InDesign 实现这一点。我们当然可以调用. 目的是摆脱 ,让用户有可能只调用并获得. setupdrawlib.jsuser-script.jssetupdrawobj.foo()obj.fooobj.foo

这是 lib.js。它只是图书馆的一小部分来说明我手头的东西。

这可能是 user-script.js。我们提供的结构是:

  • #include 用于库
  • 函数设置(){}
  • 函数绘制(){}
  • obj.go() 作为一切的执行(以后可能会被删除)

我不能告诉用户在 setup 和 draw 中编写更多附加代码。用户的部分应该减少到可以手写​​,不需要使用样板或类似的东西。


感谢您的所有回答。我将审查它们并返回报告最终决定是什么。他们似乎都以不同的方式解决问题。我目前无法判断哪个是“正确”答案。那些我们似乎最接近我的问题的人得到了我的支持。

0 投票
2 回答
44 浏览

kotlin - 重写方法的 open 修饰符背后的推理

Kotlin中重写方法时,必须声明定义方法的基类和方法本身open

重写方法后默认派生类final,而重写方法open默认。从参考文档:

标记为覆盖的成员本身是开放的,即它可以在子类中被覆盖。如果要禁止重新覆盖,请使用 final。

我想知道为什么Kotlin 团队做出了这个设计决定,而不是将重写的方法也设为 final,这是派生类和每个非重写方法的默认设置。搜索网络时找不到任何提示?

是否有人与此设计决策背后的推理有联系或可能会激发它?

0 投票
4 回答
129 浏览

java - Java 9 接口:为什么将默认修饰符转换为公共修饰符

我的问题是关于interface. 我创建了一个接口并定义了四个方法:第一个方法是一个private方法;二是default方法;三是static方法;第四是abstract方法。
编译此接口并检查其配置文件后:default方法被转换为public方法,并且staticabstract方法都有一个前置public修饰符。为什么是这样?

代码:

接口配置文件类