javascript 跨浏览器的事件系统2
缓存系统我以前在博客写过了,此后我对javascript的哲学发生很大的改变。以前是尽量避免对原型进行扩展的,但反过来一想,有什么关系?除非是傻子或特别菜的人才会混用多个库,能混用库的人也只有高手才能避免命名冲突的尴尬。十大类库中,前面几个都是对原型进行疯狂扩展的。像mootools,代码不多,但能实在比jQuery多许多的功能。这就得益于原型扩展带来的代码量的减少。当然,我们还是要避免对Object进行扩展,这个真的是牵一发动全身。
在我们开始时先列出一些要用到的工具(突然想起烹饪节目中的材料介绍……orz)
dom.mixin = function(result, source) {
if (arguments.length === 1) {
source = result;
result = dom;
}
if (result && source ){
for(var key in source)
source.hasOwnProperty(key) && (result[key] = source[key]);
}
if(arguments.length > 2 ){
var others = [].slice.call(arguments,2);
for(var i=0,n=others.length;i<n;i++){
result = arguments.callee(result,others[i]);
}
}
return result;
}
dom.mixin = function(result, source) {
if (arguments.length === 1) {
source = result;
result = dom;
}
if (result && source ){
for(var key in source)
source.hasOwnProperty(key) && (result[key] = source[key]);
}
if(arguments.length > 2 ){
var others = [].slice.call(arguments,2);
for(var i=0,n=others.length;i<n;i++){
result = arguments.callee(result,others[i]);
}
}
return result;
}
var fn = "prototype",
toString = Object[fn].toString;
dom.mixin({
//类型识别
is : function (obj,type) {
var undefined;
return (type === "Null" && obj === null) ||
(type === "Undefined" && obj === undefined ) ||
toString.call(obj).slice(8,-1) === type;
相关文档:
javascript事件驱动框架 收藏
一个简单的事件驱动框架的演示:
/*ControlDemo.js*/
//事件驱动框架(演示)
function ControlDemo(page)
{
//初始化Page
if (page == null)
{
page = self;
}
if (page != self)
{
//Do sth. here...
}
&nb ......
Javascript 原型和继承(Prototypes and Inheritance) 收藏
前面我们看到了如何使用 constructor 来初始化对象。如果这样做,那么每一个创建的新对象都会对那些相同的属性,方法建立一个独立的副本。而实际上有更加有效的方法来指定方法,常量,以及其他一些可被所有该类的对象共享的属性。
JavaScript 对象从一个 ......
JavaScript 的成功让人津津乐道,为 Web 网页编写 JavaScript 代码已经是所有 Web 设计师的基本功,这门有趣的语言蕴藏着许多不为人熟知的东西,即使多年的 JavaScript 程序员,也未能完全吃透。本文从7个方面讲述 JavaScript 中那些你不很熟知但非常实用的技巧。
简略语句
JavaScript 可以使用简略语句快速创建对象和数 ......
记得大一的时候,我们专业开了网页设计这门课程,那时,看着书上的简单几行代码产生的JS特效,很震惊,就喜欢上了js脚本语言,好似人们常说的一见钟情吧。惊艳于她强大的功能。可是,对于js,只能用遗憾来形容当时我的心情。当时,老师只是为赶进度,完成所谓的学院布置的教学任务,坐在多媒体电脑前, ......
javascript中对日期是比较弱的,特别是日期格式化和从字符中获取日期这两个功能是没
有的,自己写程序的时候封装了这些功能,分享一下,希望对大家有用。这些扩展有些是网上一些朋友写的,经过我的改造,有些是我自己写的。
函数的功能分别是:
Date.prototype.format =
function(format):根据表达式将日期格式化为 ......