小编Hug*_*rth的帖子

为什么单独定义JS原型函数比在字典中更快?

这似乎是一个特别模糊的观点,但是我试图提高我在整个Javascript语言中的基础(更具体地说,它是最好和最有效的实践).

http://jsperf.com/中测试理论时,我想出了一些奇怪的结果:

假设我们有两个"相同"的原型,定义如下:

Object1

var Object1 = function() {}

Object1.prototype.defaults = {
    radius: 400,
    up: 1
}

Object1.prototype.centerOffset = function() {
    return this.defaults.radius*this.defaults.up;
}
Run Code Online (Sandbox Code Playgroud)

对象2

var Object2 = function() {}

Object2.prototype = {
    defaults: {
        radius: 400,
        up: 1
    },

    centerOffset: function() {
        return this.defaults.radius*this.defaults.up;
    }
}
Run Code Online (Sandbox Code Playgroud)

Object1具有一致的(如果边际:〜3%)的速度优势超过Object2的执行以下简单的操作时:

var o = new Object1();
var offset = o.centerOffset();
Run Code Online (Sandbox Code Playgroud)

&

var o = new Object2();
var offset = o.centerOffset();
Run Code Online (Sandbox Code Playgroud)

你可以在这里自己运行测试.我在OSX 10.6.8上使用Chrome 25.

我想知道的是:

  • 这种性能差异的原因是什么?
  • 这个性能是否表示javascript中的一些最佳实践? …

javascript performance prototype

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

Web Workers为什么不使用更多?

网络工作者是我不时反对的技术,无论是作为博客文章的主题,还是在演示文稿中提及.

在我参加的最近一次演讲中,发言人谈到了网络工作者:

我不确定他们为什么不再使用它们.

我意识到,考虑到这一点,对于具有如此明显优势和 用例的技术,网络工作者似乎采用了相当缓慢或狭窄的采用方式.

Web工作者是否存在一些固有的问题,使它们变得不那么有用?我只是在错误的地方寻找他们使用的例子吗?或者是Javascript程序员一般不习惯于创建多线程应用程序.

javascript html5 multithreading web-worker

10
推荐指数
2
解决办法
1805
查看次数