函数参数与此性能
function argument vs this performance
在Javascript中,它提供了更多的性能:
- 将指向大型数据结构的指针传递为函数
argument
或
- 使用
this
变量获取类结构中的指针
例:
选项 1:
function() {
function(Ob) {
// do something with Ob
};
}
选项 2:
function() { // Class structure
this.Ob = { foo: "bar" }; // bar is a big data structure
this.Fn = function() {
var x = this.Ob
// Use x
};
}
我发现选项 1 更具可读性 - 但是一旦您的函数需要大量变量,选项 1 就会变得过于冗长。
您的两个示例在范围上有所不同。
您的第一个示例,内部函数具有父函数范围,并且无法在外部访问。
第二个示例具有父对象范围,但您可以使用对象实例访问外部:
function parent() {
function child() {
// only accessible inside parent() function
}
}
var parent = function() {
this.child = function() {
alert("Yeah");
};
};
var p = new parent();
p.child(); // alerts Yeah
首先,性能取决于浏览器和用户PC ofc。这两个例子几乎相同。第一个可以更快,因为您可以直接引用对象。换句话说,您使用的"."越少,获得的性能就越好。所以:
this.Obj // do something
比以下速度慢:
Obj // do something
但你不会注意到:)的区别如果你想了解更多,试着得到这本书:http://shop.oreilly.com/product/9780596802806.do
相关文章:
- 函数参数中的数据与指定变量之间的任何性能差异
- 使用Express捕获参数
- 提高JQuery的性能
- 参数变量出现ngTable指令问题
- AngularJS:我可以跳过函数参数回调吗
- 如何使用skip参数使用angular ui引导进行服务器端分页
- 要求未定义JS回调参数
- 我的jQuery插件参数没有正确启动,遇到了问题
- 获取@ResponseBody的一部分作为主干和Spring MVC控制器之间的参数
- jquery设置为使用参数运行
- Javascript”;类“;带有参数的扩展
- 为什么grunt contrib connect的中间件选项的第三个参数是未定义的
- 函数未将值作为参数传递
- 如何将参数传递到angularJs中的工厂
- Javascript:使用性能参数对函数进行原型设计
- 函数参数与此性能
- 闭包中变量的性能与作为函数参数的性能
- Javascript对象函数参数性能
- 将参数添加到'自变量'类数组对象,性能测试
- 在全局变量中存储mousemove事件参数可能会导致性能问题