- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
据我了解,可以从 Java 代码调用此帮助器方法来检查您的 Java/JS 对象是否具有您正在查找的属性但是我想知道当我们在 JavaScript 代码中使用这个 JSObject/AbstractJSObject 实现时,Nashorn 引擎是否会调用它。
我知道做一个 . JavaScript 内部将依次调用 Java 方法 .getMember()
最佳答案
如果在 JSObject 实例上的 JavaScript ( https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/in ) 中使用“in”运算符,Nashorn 将调用该 JSObject 上的 hasMember 方法。
示例代码:
import javax.script.*;
import jdk.nashorn.api.scripting.*;
public class Main {
public static void main(String[] args) throws Exception {
ScriptEngineManager m = new ScriptEngineManager();
ScriptEngine e = m.getEngineByName("nashorn");
e.put("obj", new AbstractJSObject() {
@Override
public boolean hasMember(String name) {
System.out.println("hasMember called for " + name);
return false;
}
});
// in operator triggers hasMember call on JSObject instance
e.eval("if ('foo' in obj) print('yes')");
}
}
上述程序的输出如下所示:
hasMember called for foo
关于javascript - 在 JSObject、AbstractJSObject 中重写 hasMember() 有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46461346/
根据documentation , __traits(hasMember, ...) 应该适用于任何具有成员的类型,但我无法获得将其与类一起使用的代码进行编译。观察以下片段: struct A {
对于所有熟悉 rapidjson 的人,我有以下问题: 我有一个接受日期作为参数的特定函数,如果该日期存在于 json 文件中,则该方法执行一些操作,如果不存在,则执行其他操作。 通常它看起来像这样:
据我了解,可以从 Java 代码调用此帮助器方法来检查您的 Java/JS 对象是否具有您正在查找的属性但是我想知道当我们在 JavaScript 代码中使用这个 JSObject/AbstractJ
我是一名优秀的程序员,十分优秀!