Dec 12

学学jquery源码 不指定

| |
叶子 , 11:07 , , 评论(0) , 引用(0) , 阅读(252) , From 本站原创
那天面试还有一题,同样没实现出来。大概如下:
var Do;
//代码开始
//-----代码部分
//代码结束
var a = Do("aa");
a.bt("bt");
补全代码,实现a.bt输出结果为aabt。

如果是var a = new Do("aa"),那么直接定义Do为函数,给Do添加方法即可。可是没有new,那么就需要自己构造增强函数了。之前看过点jquery源码,但是没留意这个=_=。今天把jq的翻出来复看,发现了这个秘密...

var Do;
//代码开始
Do = function(a) {
     return new Do.fn.init(a);
};
Do.fn = Do.prototype = {
     temp: "",
     init: function(a) {
            this.temp = a;
            return this;
     },
     bt: function(b) { document.write(this.temp + b ) }
}
Do.fn.init.prototype = Do.fn;
//代码结束
var a = Do("aa");
a.bt("bt");

jq对应的是
// Give the init function the jQuery prototype for later instantiation
jQuery.fn.init.prototype = jQuery.fn;
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]