Javascript代码收集

本文介绍了一个自定义的JavaScript each函数实现,用于遍历数组或对象,并展示了如何使用原型继承来扩展构造函数的功能。此外,还提供了一种根据userAgent判断客户端是否为手机的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.模仿jquery each

原文地址

    function each(obj, fn){
        var i;
        if(Object.prototype.toString.call(obj) === '[object Array]'){
            for(i = 0, length = obj.length; i < length; i++){
                fn.call(obj[i], i, obj[i]);
            }
        }
        else if(typeof obj === 'object'){
            for(i in obj){
                if(obj.hasOwnProperty(i)){
                   fn.call(obj[i], i, obj[i]);
                }
            }
        }
        else{
            return false;
        }
    }
View Code

2.this, constructor, prototype例子

原文地址

var Tinker = function(){
        this.elements = [];
    
    };
        Tinker.fn = Tinker.prototype = {
            constructor: Tinker,
            extend: function(obj){
                var p;
                for(p in obj){
                    this.constructor.prototype[p] = obj[p];//此处若看明白了, 那么前面的就理解了
                }
            }
        
        }
        Tinker.fn.extend({
           get: function(){
                var length = arguments.length,
                i = 0;
               for(; i < length; i++){
                   this.elements.push(arguments[i]); //此处若看明白了, 那么前面的就理解了
               }
               return this;//此处若看明白了, 那么前面的就理解了
           },
           each: function(fn){
                var i = 0,
                    length = this.elements.length;
                for(; i < length; i++){
                    fn.call(this.elements[i], i, this.elements[i]);
                }
                return this;//此处若看明白了, 那么前面的就理解了
           }
            
        });
View Code

3.根据userAgent判断是否手机

原文地址

if(/AppleWebKit.*Mobile/i.test(navigator.userAgent) || (/MIDP|SymbianOS|NOKIA|SAMSUNG|LG|NEC|TCL|Alcatel|BIRD|DBTEL|Dopod|PHILIPS|HAIER|LENOVO|MOT-|Nokia|SonyEricsson|SIE-|Amoi|ZTE/.test(navigator.userAgent))){
if(window.location.href.indexOf("?mobile")<0){
try{
if(/Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)){
//移动端
}else if(/iPad/i.test(navigator.userAgent)){
//这里对ipad做了处理
}else{
//移动端
}
}catch(e){}
}
}else{
//pc端
}


var ISWP = !!(navigator.userAgent.match(/Windows\sPhone/i));
View Code

 

转载于:https://www.cnblogs.com/xqhppt/p/3200845.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值