gpt4 book ai didi

Javascript 属性分配( Vanilla )

转载 作者:行者123 更新时间:2023-11-30 12:06:54 31 4
gpt4 key购买 nike

对于一个小项目,我想制作一个基于浏览器引擎检测浏览器的小型库:

var engine = {
opera: function(){
var ua = navigator.userAgent.toLowerCase(),
version = ua.match(/opera[\/\s](\d+\.\d+)/);
if (version){
return parseFloat(version[1]);
}
},
webkit: function(){
var ua = navigator.userAgent.toLowerCase(),
version = ua.match(/applewebkit\/([\d.]+)/);
if (version && !engine.opera()){
return parseFloat(version[1]);
}
},
gecko: function(){
var ua = navigator.userAgent.toLowerCase(),
version = ua.match(/rv\:([\w\.]+).\s(gecko)/);
if (version && !engine.opera()){
return parseFloat(version[1]);
}
},
ie: function(){
var ua = navigator.userAgent.toLowerCase(),
version = ua.match(/msie (\d+\.\d+)/);
if (version && !engine.opera()){
return parseFloat(version[1]);
}
},
touch: function(){
var ua = navigator.userAgent.toLowerCase();
if (ua.match(/android|ipod|iphone|ipad|iemobile|bb[\d]\d|blackberry|playbook|silk|touch|mobile/)){
return true;
}
else {
return false;
}
}

};

调用:engine.webkit()<534.3检查这是否是基于 webkit 的浏览器比 Android 4 等中使用的浏览器更旧。

如您所见,我正在使用属性分配来封装引擎检测,而不是污染全局命名空间。

但是 - 对于每个单独的引擎,我正在创建变量 ua,它显然没有被重用,因此不是最佳实践。

有人能告诉我如何在引擎对象中只定义一次 var ua 吗?

谢谢

最佳答案

只需添加属性并与 this 一起使用:

ua: navigator.userAgent.toLowerCase(),
opera: function {
this.ua // The reusable

关于Javascript 属性分配( Vanilla ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34931233/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com