javascript - js中字面量的多层级写法对效率有什么影响吗
PHPz
PHPz 2017-04-11 10:03:59
[JavaScript讨论组]
var templeFun = {
    nodataWarn: {
        stateHclass: '<p class="dataWa">暂无数据...</p>',
        stateNclass: '<p style="text-align:center;line-height: 50px;border: 5px solid #f3f3f3;">暂无数据...</p>',
        curSubid: $('.historySub .curth').attr('type_val')
    },
    //        分页初始页
    paPage: {
        notepage: 1,
        numPage: {
                $at: 4,
                $ad: {
                    $type: function(){
                    }
                }
            }
    }

}
就比如上面的代码,如果这种写法层数多了的话,这种访问:templeFun.paPage.numPage.$ad.$type(),对性能上或是效率上有什么影响吗

PHPz
PHPz

学习是最好的投资!

全部回复(6)
黄舟

性能应该没太大影响,效率还要看你具体的数据处理,可以用chrome的console.time看代码执行的时间;

console.time('run');
var templeFun = {
    nodataWarn: {
        stateHclass: '<p class="dataWa">暂无数据...</p>',
        stateNclass: '<p style="text-align:center;line-height: 50px;border: 5px solid #f3f3f3;">暂无数据...</p>',
        // curSubid: $('.historySub .curth').attr('type_val')
    },
    //        分页初始页
    paPage: {
        notepage: 1,
        numPage: {
            $at: 4,
            $ad: {
                $type: function() {
                    return templeFun.paPage.numPage.$at++;
                }
            }
        }
    }
}
var value;
for (var i = 0; i < 100000; i++)
    value = templeFun.paPage.numPage.$ad.$type()
console.log(value);
console.timeEnd('run');

查询20万次执行时间:
run: 5.230ms
----------------------------------------
我把$type函数改成打印数据,其他不变:
$type: function() {
    console.log(templeFun.paPage.numPage.$at++)
    return 0;
}
执行时间是:

run: 5463.301ms

所以单纯查询并不怎么影响性能和效率,你的代码逻辑处理对效率有影响
阿神

那你选择是作贱自己,还是作贱机器。我相信大部分人选择后者。

怪我咯

层级多了, 对自己和机器理解都有影响!

PHP中文网

这种不会成为性能瓶颈的,没有太大考虑的必要的,性能上肯定是会慢,毕竟你多一次查找,但是根本没有任何关系

高洛峰

就像楼上 所说, 层级的性能消耗, 相对与 DOM 刷新和渲染 所造成的性能消耗 是非常小的,另外,这让我想起 选择器。。。 你在脚本里面 运行一万次循环获取, 和运行一万次拼接好的DOM元素渲染到页面,你就会发现, 渲染的那种 --蹦了!

高洛峰

人能理解的层数不至于造成可感知的影响

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号