小编Seb*_*rth的帖子

测试对象是否是Google Closure类框架中的接口实现

如何使用Google Closure继承机制测试JavaScript对象是否是接口的实现?


我找不到任何暗示my.Animal在通过创建对象new my.Dog()object instanceof my.Animal没有奏效.忘记在子类中实现方法时,有关接口的唯一信息是编译器错误.

/**
 * @interface
 */
my.Animal = function() {};

/**
 * Does something.
 * @return {string}
 */
my.Animal.prototype.doSomething;

/**
 * @constructor
 * @implements {my.Animal}
 */
my.Dog = function() {};

/** @inheritDoc */
my.Dog.prototype.doSomething() = function {
    return "something";
}

var dog = new my.Dog();
console.log(dog instanceof my.Animal); // returns false
Run Code Online (Sandbox Code Playgroud)

我找到的一种方法是大致测试接口的属性,尽管这在很多方面都很糟糕:

console.log(!!dog.doSomething); // returns true
Run Code Online (Sandbox Code Playgroud)

javascript google-closure google-closure-library google-closure-compiler

5
推荐指数
1
解决办法
745
查看次数

什么字符集用于带有 base64 编码二进制数据的 json?

使用 base64 编码的二进制数据的 JSON (UTF-8/16/32) 最节省空间的字符集是什么?

{ data: "jA0EAwMCxamDRMfOGV5gyZPnyX1BB" }
Run Code Online (Sandbox Code Playgroud)

base64 json utf-8 utf-16 utf-32

4
推荐指数
1
解决办法
3380
查看次数

JSON.stringify 或如何将二进制数据序列化为 base64 编码的 JSON?

我有一个 Javascript 对象,它将由一个带有参数和子对象的非循环对象层次结构组成。其中一些对象可能保存从文件加载或通过 XHR 接收的二进制数据(如果 Blob、ArrayBuffer 或其他东西尚未定义)。

通常我会使用 JSON.stringify() 将它序列化为 JSON 但我如何指定二进制数据将被 base64 编码?

那么你会推荐我什么二进制数据对象(Blob,ArrayBuffer,...)?

编辑:除普通 JSON 之外的其他数据格式不是一种选择。

javascript json blob arraybuffer

3
推荐指数
2
解决办法
2万
查看次数

Javascript:Javascript中RegExp的/ e修饰符

在JavaScript中是否有类似Perls/e修饰符的东西,可以将简单的算法(如乘法和加法)集成到使用RegExp对象计算的正则表达式中?

我想传输一个URL生成模式,其中可能包括字符串的连接,乘法和除法以及替换整数变量,这些变量比传输和评估Javascript代码更安全.

javascript regex url perl arithmetic-expressions

2
推荐指数
1
解决办法
72
查看次数

如何检查URL是否是本地机器?

我在 Spring 4 @RestController 中有一个java.net.URL对象。如何检查 URL (HTTP) 是指向当前机器(此 Spring 应用程序)还是指向外部 HTTP 源的 URL?


  • 我发现那个的java.net.URL确实主机名解析来比较其他URL对象。有没有办法重用这个决议而不必重新发明轮子?

java url spring

2
推荐指数
1
解决办法
6282
查看次数

带和不带 def 关键字的方法参数

假设我们有以下方法:

def myMethodWithParameters(param1, def param2, Object param3) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

使用 def 关键字和使用 Object 作为参数类型有什么区别?

使用 def 关键字和不使用任何类型/关键字作为参数有什么区别?


到目前为止我所知道的并不能完全回答这个问题:

  • def关键字用于允许动态类型。所以你甚至可以Object[]在里面放一个。
  • def关键字可用于使变量仅在当前范围内可用,而不是全局范围内可用

grails groovy

1
推荐指数
1
解决办法
2546
查看次数

包含数组作为参考的 Bash 复制变量

使用以下代码,我可以将一个数组内容复制到另一个数组,这样在更改一个数组时,另一个数组不会受到影响。

#!/bin/bash
declare -a ARRAY_A=(a b c d e)
ARRAY_B=("${ARRAY_A[@]}")

echo "Before removal:"

printf "%s " ${ARRAY_A[@]}
echo
printf "%s " ${ARRAY_B[@]}
echo

echo
echo "After removal:"
unset ARRAY_A[0]

printf "%s " ${ARRAY_A[@]}
echo
printf "%s " ${ARRAY_B[@]}
echo
Run Code Online (Sandbox Code Playgroud)

印刷:

Before removal:
a b c d e 
a b c d e 

After removal:
b c d e 
a b c d e
Run Code Online (Sandbox Code Playgroud)

是否可以复制对该数组的引用,以便在更改一个数组时,“另一个”(当时相同)似乎也被更改(如下所示)?

Before removal:
a b c d e 
a b c d e 

After removal:
b c …
Run Code Online (Sandbox Code Playgroud)

arrays variables bash reference

1
推荐指数
1
解决办法
25
查看次数