jQuery构造求解

sadnews 2011-08-11 03:25:03
话说jQuery的代码我没看太懂,请各位高人指点一下,下面代码是我依葫芦画瓢瞎写的,似乎能做到fm1和fm2的区别对待。但是还是不理解为什么我把this.settings移动到跟version平级的位置,就不行,那个this难道不是fn吗?请详解,困惑!


(function (window) {
var floatMenu = function (settings) {
return new floatMenu.fn.init(settings);
};
floatMenu.fn = floatMenu.prototype = {
version: "1.0",
init: function (settings) {
this.settings = {};
util.extends(this.settings, settings);
},
load: function () {
return this.settings.hello;
}
}
floatMenu.fn.init.prototype = floatMenu.fn;

var util = {
extends: function (collection, collectionOverride) {
if (collectionOverride && collection) {
for (var key in collectionOverride) {
collection[key] = collectionOverride[key];
}
}
}
};

if (window) {
window.$fm = window.floatMenu = floatMenu;
}
})(window);

var fm1 = $fm({ "hello": "world2" });
var fm2 = $fm({ "hello": "world3" });
alert(fm1.load());
alert(fm2.load());
alert(fm1.load());
alert(fm2.load());
...全文
63 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
chiyan42 2011-08-11
  • 打赏
  • 举报
回复
this指的是当前对象或者当前方法


function (settings) {
this.settings = {};
util.extends(this.settings, settings);
}

显然this 值得是你这个没有名字的function

87,989

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧