好久没有写blog了……几天前在github上面fork了百度的IFE项目,然后看了看他们高级班的任务发现自己菜如狗,什么WebGL啊什么大型项目开发啥的完全不会啊QAQ,于是就随手找了一个中级班的task3来做,结果没想到做到了现在……目前功能做得差不多了,但是函数复用啊优化啊啥的暂时都还没管,只是最基本的实现了功能而已……发现自己真是渣的不行,效率也低。╮(╯▽╰)╭没办法现在开始努力吧,也顺便总结一下自己这几天写代码的一些感受。
刚开始写HTML和css的时候感觉还是比较简单的,毕竟没有涉及什么太复杂的样式,大概花了一共两个小时把前端样式实现了。然后接下来是JS……仔细看了功能之后才发现自己想的太简单了,这项目完全就是要做一个网页端的文件管理系统嘛……于是我又掉过头去看JS的localStorage这些东西,也算是学到了不少。不过我现在真的很想要赞美一下MVC……妈蛋写那种一两百行的小玩意儿的时候感觉不到,今天这JS文件破了五百行就感觉翻来翻去的好烦……虽然也是按照面对对象的思路来写的,也在封装函数啥的,但是感觉就是找来找去看着各种颜色的代码头都大了。妈蛋所以说我一个几百行的破玩意儿干嘛要OOP啊(╯‵□′)╯︵┻━┻,我又不写继承也没有多个实例我干嘛要OOP啊!全局变量污染可我已经用匿名函数包裹了啊!所以说为了OOP而OOP的都是脑袋被门挤了吧!【←比如我】
算了总结一些工程中的小函数吧,比如这个,返回对象长度:
Object.prototype.length = function() {
var i = 0;
for (var val in this) {
if (this.hasOwnProperty(val)) {
i ++;
}
}
return i;
}
再举个例,遍历DOM兄弟元素:
function siblings(elem) {
var sibling = [], previous = elem, next = elem;
while (previous.previousSibling != null) {
previous = previous.previousSibling;
if (previous.nodeType == 1)
sibling.push(previous);
}
while (next.nextSibling != null) {
next = next.nextSibling;
if (next.nodeType == 1)
sibling.push(next);
}
return sibling;
}
不出意外的话是可以用的orz。
还有removeClass:
function removeClass(elem, cla) {
if (!elem.length) {
var c = elem.className;
c = c.split(" ");
for (var i = 0; i < c.length; i ++) {
if (c[i] == cla) {
c.splice(i, 1);
};
};
elem.className = c.join(" ");
}
else {
for (var i = 0; i < elem.length; i ++) {
var c = elem[i].className;
c = c.split(" ");
for (var j = 0; j < c.length; j ++) {
if (c[j] == cla) {
c.splice(j, 1);
};
};
elem[i].className = c.join(" ");
}
}
}
这个函数……感觉也是渣出了水平渣出了风格啊o(╯□╰)o。
对了,还有addClass,不过就是上面这个函数变一下罢了……就不丢脸了……
还有这些东西只是给我自己看的……求菊苣不要嘲笑我啊TAT