javascript - 调用prototype的方法为什么说方法不存在?
高洛峰
高洛峰 2017-04-10 18:04:58
[JavaScript讨论组]
(function() {
    //use a private class
    function _$(els) {
        this.elements=[];
        //why '++i' ?
        for (var i=0,len=els.length;i<len;++i) {
            var element=els[i];
            if (typeof element ==='string') {
                element=document.getElementById(element);
            }
            this.elements.push(element);
        }
        return this.elements;
    }
    
    //add method to prototype and return this.
    _$.prototype={
        each:function(fn) {
            for (var i=0,len=this.elements.length;i<len;i++) {
                fn.call(this,this.elements[i]);
            }
            return this;
        },
        setStyle:function(prop,value) {
            this.each(function(el) {
                el.style[prop]=value;
            });
            return this;
        },
        show:function(){
            var that = this;
            this.each(function(el) {
                that.setStyle("display","block");
            });
            return this;
        },
        addEvent:function(type,fn) {
            var add=function(el) {
                if (window.addEventListener) {
                    el.addEventListener(type,fn,false);
                }else if (window.attachEvent) {
                    el.attachEvent('on'+type,fn);
                }
            };
            this.each(function(el) {
                add(el);
            });
            return this;
        }
    };
    
    //return window._$
    window.$=function() {
        return new _$(arguments);
    };
})();

//TODO
$("test").addEvent();
高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(1)
ringa_lee
function _$(els) {
        this.elements=[];
        //why '++i' ?
        for (var i=0,len=els.length;i<len;++i) {
            var element=els[i];
            if (typeof element ==='string') {
                element=document.getElementById(element);
            }
            this.elements.push(element);
        }
        // return this.elements;
    }
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

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