小编pr1*_*001的帖子

如何查看Javascript对象的原型链?

给出以下代码:

function a() {}
function b() {}
b.prototype = new a();
var b1 = new b();
Run Code Online (Sandbox Code Playgroud)

我们可以留下a已被添加到b原型链中.大.并且,以下所有都是真的:

b1 instanceof b
b1 instanceof a
b1 instanceof Object
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果我们不知道b1提前的起源怎么办?我们怎样才能发现其原型链的成员?理想情况下,我喜欢像[b, a, Object]或的数组["b", "a", "Object"].

这可能吗?我相信我已经在SO上找到了一个答案,描述了如何找到这个,但我不能再为我的生活找到它.

javascript prototype prototypal-inheritance

19
推荐指数
2
解决办法
6042
查看次数

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

我可以在不使用new关键字的情况下构造JavaScript对象吗?

这是我想做的事情:

function a() {
  // ...
}
function b() {
  //  Some magic, return a new object.
}
var c = b();

c instanceof b // -> true
c instanceof a // -> true
b instanceof a // -> true
Run Code Online (Sandbox Code Playgroud)

可能吗?我可以通过挂钩到它的原型链b来成为一个a容易的实例a但是我必须这样做new b(),这就是我想要避免的.我想要的是什么?

更新:我觉得有可能明智地使用b.__proto__ = a.prototype.我下班后要去做更多的实验.

更新2:下面是你可以得到的最接近的,这对我来说已经足够了.谢谢所有有趣的答案.

function a() {
  // ...
}
function b() {
  if (!(this instanceof arguments.callee)) {
    return new arguments.callee();
  }
}
b.__proto__ = a.prototype …
Run Code Online (Sandbox Code Playgroud)

javascript inheritance constructor prototype

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

使用ZipInputStreams和ZipOutpuStreams时,如何避免Scala中的可变变量?

我正在尝试读取一个zip文件,检查它是否有一些必需的文件,然后将所有有效文件写入另一个zip文件.java.util.zip基本介绍有很多Java主义,我很想让我的代码更加Scala-native.具体来说,我想避免使用vars.这就是我所拥有的:

val fos = new FileOutputStream("new.zip");
val zipOut = new ZipOutputStream(new BufferedOutputStream(fos));

while (zipIn.available == 1) {
  val entry = zipIn.getNextEntry
  if (entryIsValid(entry)) {
    zipOut.putNewEntry(new ZipEntry("subdir/" + entry.getName())
    // read data into the data Array
    var data = Array[Byte](1024)
    var count = zipIn.read(data, 0, 1024)
    while (count != -1) {
      zipOut.write(data, 0, count)
      count = zipIn.read(data, 0, 1024)
    }
  }
  zipIn.close
}
zipOut.close
Run Code Online (Sandbox Code Playgroud)

我应该补充说我正在使用Scala 2.7.7.

scala immutability zipinputstream zipoutputstream

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

BETWENEN和IN与MySQL或SQL之间是否存在性能差异?

我有一组连续的行,我想根据它们的主键获得,这是一个自动递增的整数.假设没有洞,两者之间是否有任何表现:

SELECT * FROM `theTable` WHERE `id` IN (n, ... nk); 
Run Code Online (Sandbox Code Playgroud)

和:

SELECT * FROM `theTable` WHERE `id` BETWEEN n AND nk;
Run Code Online (Sandbox Code Playgroud)

mysql sql between

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

为什么Scala在已经具有特征的情况下会有课程?

这似乎是一个愚蠢的问题,所以请耐心等待......

考虑一下这个REPL会话:

scala> trait T
defined trait T

scala> val t = new T
<console>:8: error: trait T is abstract; cannot be instantiated
       val t = new T
               ^

scala> val t = new T {}
t: java.lang.Object with T = $anon$1@78db81f3

scala> class C
defined class C

scala> val c = new C
c: C = C@170a6001
Run Code Online (Sandbox Code Playgroud)

我们可以像一个类一样使用特征,除了我们必须在{}之后添加new T.事实上,我们基本上是混合T进入java.lang.Object,这实际上使得很多的意义,我.

如果我们有成员,则只需{}添加:

scala> trait T2 { val s = "test" } …
Run Code Online (Sandbox Code Playgroud)

scala class traits

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

lwIP是否支持Zeroconf?

我看到lwIP有一些AutoIP(又名IPv4LL,又名RFC 3927)代码,但我不知道它是否在Zeroconf堆栈中做了更高的任务,即mDNS和DNS-SD(使用RFC 2782).

那么,lwIP是否支持DNS-SD服务发现?如果没有,从Avahi这样的项目中移植代码是否容易(假设许可允许)?

c embedded networking zeroconf lwip

13
推荐指数
2
解决办法
3542
查看次数

有没有(有点)高级数学Javascript库?

是否有任何库可以为Javascript提供任何其他通用数学函数?比如像范围,衍生物,积分等的总和.我可以想象许多事情是不可能的,所以即使做粗略近似的图书馆也会很有趣.

谢谢!

更新:如下所述,我想没有任何库可以做我想做的事情.本着这种精神,我开始使用我自己的名为MathPlus的库.

javascript math

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

如何有效地重用HttpClient连接?

我非常频繁地(> = 1 /秒)对API端点进行HTTP POST,我想确保我有效地进行.我的目标是尽快成功或失败,特别是因为我有单独的代码来重试失败的POST.有一个很好的HttpClient性能提示页面,但我不确定是否详尽地实现它们都会带来真正的好处.这是我现在的代码:

public class Poster {
  private String url;
  // re-use our request
  private HttpClient client;
  // re-use our method
  private PostMethod method;

  public Poster(String url) {
    this.url = url;

    // Set up the request for reuse.
    HttpClientParams clientParams = new HttpClientParams();
    clientParams.setSoTimeout(1000);  // 1 second timeout.
    this.client = new HttpClient(clientParams);
    // don't check for stale connections, since we want to be as fast as possible?
    // this.client.getParams().setParameter("http.connection.stalecheck", false);

    this.method = new PostMethod(this.url);
    // custom …
Run Code Online (Sandbox Code Playgroud)

java http persistent-connection apache-commons-httpclient

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

在Scala中是否有一种安全的方法来转置不等长列表的列表?

鉴于以下列表:

val l = List(List(1, 2, 3), List(4, 5), List(6, 7, 8))
Run Code Online (Sandbox Code Playgroud)

如果我尝试转置它,Scala将抛出以下错误:

scala> List.transpose(l)
java.util.NoSuchElementException: head of empty list
    at scala.Nil$.head(List.scala:1365)
    at scala.Nil$.head(List.scala:1362)
    at scala.List$$anonfun$transpose$1.apply(List.scala:417)
    at scala.List$$anonfun$transpose$1.apply(List.scala:417)
    at scala.List.map(List.scala:812)
    at scala.List$.transpose(List.scala:417)
    at .<init>(<console>:6)
    at .<clinit>(<console>)
    at RequestResult...
Run Code Online (Sandbox Code Playgroud)

这是因为List.transpose假设等长列表,所以使用head方法:

def transpose[A](xss: List[List[A]]): List[List[A]] = {
  val buf = new ListBuffer[List[A]]
  var yss = xss
  while (!yss.head.isEmpty) {
    buf += (yss map (_.head))
    yss = (yss map (_.tail))
  }
  buf.toList
}
Run Code Online (Sandbox Code Playgroud)

我想得到以下内容:

List(List(1, 4, 6), List(2, 5, …
Run Code Online (Sandbox Code Playgroud)

transpose scala list

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