摘要: 扯淡:本来这个《Prototype源码浅析》是只打算作为学习Prototype的笔记的,不过有时候发现一个问题可以深入一点(虽然还是浅析),就脱离了原来的预期,越来越偏题了。今天的打算本来是写完Str的,但是写到变量检测的时候,发现又可以扯点淡,就又拖累了进程。这个对于项目来说,肯定是不好的,不过对于学习,就不清楚了。因为自己吃过的亏,所以从一个新手的角度,写得尽量新手向,新手共勉。这里我不关心javascript里面各种类型是怎么定义的,唯一要指出的是var str_1 = 'xesam';var str_2 = new String('xesam');con 阅读全文
posted @ 2011-12-21 19:24 西山 阅读(2466) 评论(0) 推荐(0) 编辑
摘要: 前些天小小的分析了一下Prototype的Function部分,今天开始Prototype的Object这一部分开始需要说明的一点是,Object这部分与先前的Function那一部分有点不一样,这次Object是直接扩展在Object上面的,而非Object.prototype,两者是有本质区别的,也就是本次Obeject的扩展相当于添加Object的一个静态变量(方法);extend(Object, {})Object.extend(Function.prototype,{})Object的方法比较多,有些是很基础的(比如类型判断),所以也就不想全部都分析了,只拣几个我觉得比较重要或者难以 阅读全文
posted @ 2011-12-21 00:21 西山 阅读(2941) 评论(0) 推荐(0) 编辑
摘要: 在DOM操作里,createElement是创建一个新的节点,createDocumentFragment是创建一个文档片段。网上可以搜到的大部分都是说使用createDocumentFragment主要是因为避免因createElement多次添加到document.body引起的效率问题,比如:var arrText=["1","2","3","4","5","6","7","8","9","10&qu 阅读全文
posted @ 2011-12-19 21:31 西山 阅读(15237) 评论(1) 推荐(2) 编辑
摘要: 接着上一部分:Prototype源码浅析——Function.prototype部分(一)粗略回顾,前面的一个例子,两条道路:function handler(greet){ console.log(greet,this.name); } var obj = { name : 'xesam' }第一、用call或者apply来改变handler的作用域,handler.call(obj,'hello'),这种情况下需要另一个函数来包装一下。第二、将handler变成obj的一个方法,让其能这么调用obj.handler()第一部分说的是第一条道路,... 阅读全文
posted @ 2011-12-18 23:26 西山 阅读(3913) 评论(1) 推荐(0) 编辑
摘要: 最近学习都是自己想到什么就些什么,这样进步也不明显,于是偶尔也看看Prototype的源码,分析分析也算笔记。记得以前看jquery的源码的时候,网上一搜,源码分析一堆,不过透过表面看实质,大部分都只能算是注释。对于我这样的一个初学者,真算是坑爹啊。于是到现在,jquery的源码还是只看了前面几百行。选择看Prototype的源码是因为Prototype与jqeury不一样,jquery的所有操作都是在一个(组)jquery对象上来完成的,但是Prototype却扩展了原生的类型,比如这次要说的Function。所以···Prototype·· 阅读全文
posted @ 2011-12-17 00:28 西山 阅读(5391) 评论(5) 推荐(2) 编辑
摘要: 引子:今天看到别人的一个题目: function fn(x){ x = 10; arguments[0] = 20; console.log(x,arguments[0]) } fn()感觉自己对这也是一知半解,自己也可以试一下,于是就特地分析一下。本想从语言的角度来分析,无奈功力不够,只能粗浅的尝试一下,于是称之管中窥豹,还望大牛指正。这是昨天写的,今天吃饭的时候又想了一下,想来想去感觉有些问题还是说得不靠谱,于是又试着修改了一下。每一本js入门书籍都会提到,JS的函数内部有一个Arguments的对象arguments,用来函数调... 阅读全文
posted @ 2011-12-15 19:41 西山 阅读(5413) 评论(12) 推荐(1) 编辑
摘要: 这个是休息的时候想到了,不知道有没有人用过。就是在当前页面用AJAX请求当前页面,返回的就是整个页面的HTML··既然是整个页面,所以也包括文档声明。唯一需要注意的地方:innerText与textContent,显示页面的时候不能用innerHTML,否则会被解析。innerText与textContent是在除FF之外的浏览器与FF之间的差异。var innerText = document.body.innerText ? 'innerText' : 'textContent';上面的语句在开头处理以避免多次判断demo贴图:demo: 阅读全文
posted @ 2011-12-14 17:04 西山 阅读(7149) 评论(2) 推荐(0) 编辑
摘要: 上个星期做了一个《JS构建页面的DOM节点结构》以及列表相关的一些操作,今天接着完善一下,把两者结合起来,做一个页面结构的DOM控制面板。大致的情况如下:先遍历当前页面的dom节点,然后将获得的节点构建成一个DOM树行菜单。然后将DOM树行菜单菜单作为一个面板,将菜单的操作映射为页面DOM的行为。暂时只能进行基本的页面DOM顺序拖动,类似Chrome控制台的Elements面板。然后兼容IE6/7/8。所有的操作在前面的文章里面都有涉及,所以算是个总结。测试地址:http://fronter.sinaapp.com/wp-content/demo/domTree.htmldemo图(拖动旁边的 阅读全文
posted @ 2011-12-13 15:07 西山 阅读(771) 评论(1) 推荐(0) 编辑
摘要: 昨天据说是XXX什么的月食,于是学习CSS3的时候也实现一个,全当练手。实现原理很简单,用一个大圆覆盖一个小圆···=。=·:用基于webkit的浏览器测试,需要其他的浏览器可以更改对应的前缀(-webkit,-moz,-o)演示地址:http://fronter.sinaapp.com/wp-content/demo/eclipse.html最终效果:demo:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.o 阅读全文
posted @ 2011-12-11 02:43 西山 阅读(954) 评论(6) 推荐(0) 编辑
摘要: 本来是要做一个命令行的,这个算是铺垫。规定一个文件的表示形式: file_0 : { type : 'folder', name : 'folder_0', length : 2, files[fileContent] :{} }type:文件类型,分为disk、folder和filename:文件(夹)名length:文件夹中的文件个数,file类型没有length属性files:子文件fileContent:文件内容fileA... 阅读全文
posted @ 2011-12-09 23:37 西山 阅读(437) 评论(0) 推荐(0) 编辑