Heim > Fragen und Antworten > Hauptteil
今天看《javascript高级程序设计》上说:把全局的定义为局部变量和使用变量比调用对象属性性能更好,所以吧项目中的代码做了如下修改,但是不知道怎么验证,也感觉这样不知道好在哪,或这样其实并没有优化性能,求大神指点。
如果在js中直接使用createElement()创建元素和将创建一个局部方法指向createElement()这两种那个性能更好?为什么?
直接使用createElement(),这里已经将document复制给局部变量doc
var doc=document
var createEle=function(eleStr){
return doc.createElement(eleStr);
}
//创建元素
li = doc.createElement('li');
span = doc.createElement('span');
img = doc.createElement('img');
pContent = doc.createElement('p');
pBrief = doc.createElement('p');
ulBrief = doc.createElement('ul');
pDetail = doc.createElement('p');
ulDetail = doc.createElement('ul');
liBrief = doc.createElement('li');
liDetail = doc.createElement('li');
a = doc.createElement("a");
创建:‘创建对象的方法’
var doc=document
var createEle=function(eleStr){
return doc.createElement(eleStr);
}
//定义创建元素的方法应引用是都比doc.createElement('str');性能更好?
li = createEle('li');
span = createEle('span');
img = createEle('img');
pContent = createEle('p');
pBrief = createEle('p');
ulBrief = createEle('ul');
pDetail = createEle('p');
ulDetail = createEle('ul');
liBrief = createEle('li');
liDetail = createEle('li');
a = createEle("a");
伊谢尔伦2017-04-11 12:31:46
不这么折腾更好
分析一下doc.createElement
:
在当前作用域下找doc变量
在doc下找createElement属性
调用createElement函数
分析一下createEle
:
在当前作用域下找createEle
执行createEle
2.1 找doc变量
2.2 找doc变量下的createElement属性
2.3 找eleStr参数变量
2.4 调用createElement属性
你能看出来createEle
多出了哪些东西么
(纯粹YY,我不了解JS引擎对代码执行的优化过程)
黄舟2017-04-11 12:31:46
你的第二种方法还不如直接这样呢……
var createEle = document.createElement.bind(document);
包装那么几层完全没有必要。