小编Mat*_*att的帖子

MDN在调用apply时绑定为什么使用concat参数

MDN为没有本机绑定方法的浏览器指定了polyfill绑定方法:https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Function/bind

此代码包含以下行:

aArgs.concat(Array.prototype.slice.call(arguments))
Run Code Online (Sandbox Code Playgroud)

哪个作为args传递给函数的apply方法:

fToBind.apply(this instanceof fNOP && oThis
                             ? this
                             : oThis,
                           aArgs.concat(Array.prototype.slice.call(arguments)));
Run Code Online (Sandbox Code Playgroud)

但是,这一行实际上重复了参数,所以如果我将bind方法调用为:

fnX.bind({value: 666}, 1, 2, 3)
Run Code Online (Sandbox Code Playgroud)

传递给fnX的参数是:

[1, 2, 3, Object, 1, 2, 3] 
Run Code Online (Sandbox Code Playgroud)

运行以下示例并查看控制台输出http://jsfiddle.net/dtbkq/

然而,fnX报告的参数是[1,2,3],这是正确的.有人可以解释为什么传递给apply调用时args是重复的但是没有出现在函数arguments变量中?

javascript bind apply

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

node.js 按域计算带宽使用情况

如何使用 node.js 作为 Web 服务器来监控每个域的带宽使用情况?

有谁知道我没有遇到过的 API 调用?

或者其他人在按带宽收费的多租户环境中使用的模块或其他方法?

更新:

有谁知道轻量级代理/服务器可以放在任何可以通过检查域记录这些带宽统计信息的 Web 服务器(node.js、apache 等)之前?

monitoring bandwidth limit node.js

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

Node.js防止功能检查(toString)

在浏览器中运行javascript时,无需尝试隐藏功能代码,因为它已下载并可以在源代码中查看。

在服务器上运行时,情况会改变。在诸如api这样的用例中,您想为用户提供要调用的函数,而又不允许他们查看正在运行的代码。

在我们的特定情况下,我们想在节点内部执行用户提交的javascript。我们能够对node.js api进行沙箱化,但是我们希望将自己的api添加到此沙箱中,而用户则无法toString函数来查看正在运行的代码。

是否有人有一种模式或一种防止用户输出功能代码的方法?

更新:

这是基于以下公认答案的完整解决方案(我相信)。请注意,尽管已使用客户端代码进行了演示。您不会使用此客户端,因为有人可以通过简单地阅读下载的代码来看到隐藏功能的内容(尽管如果使用了缩小功能,它可能会稍微慢一些来检查代码)。

这是供服务器端使用的,您要允许用户在沙盒环境中运行api代码,但不允许他们查看api的功能。这段代码中的沙箱仅用于说明这一点。这不是实际的沙箱实现。

// function which hides another function by returning an anonymous
// function which calls  the hidden function (ie. places the hidden
// function in a closure to enable access when the wraped function is passed to the sandbox) 
function wrapFunc(funcToHide) {
  var shownFunc = function() {
    funcToHide();
  };
  return shownFunc;
}

// function whose contents you want to hide
function secretFunc() {
  alert('hello');            
}

// api object (will be passed …
Run Code Online (Sandbox Code Playgroud)

api function tostring node.js

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

标签 统计

node.js ×2

api ×1

apply ×1

bandwidth ×1

bind ×1

function ×1

javascript ×1

limit ×1

monitoring ×1

tostring ×1