Javascript单例模式
ExtJS 设计模式 之一 (单例)
Extjs 发展至今,传承了YUI的伟大精髓, YUI得到了Douglas Crockford(任职于 Yahoo! 的一名 JavaScript 传道者和架构师,他是全球最有造诣的 JavaScript 语言专家之一,Blog:http://www.crockford.com/) 大师的赞同,而ExtJS也是将YUI的模式脚本编程学习使用的淋漓尽致,并且还给它做了几套华丽的CSS嫁衣…., 而在ExtJS越发耀眼的同时,我等初学者在使用ExtJs的时候也是晕呼其呼。(好在2.0 推出之后,官方的文档,像雨后春笋一样,开始覆盖到方方面面。)
其实,拨开ExtJS华丽的外衣,翻阅其体内精致的代码,不难发现一些我们耳熟能详的设计模式。
在早期1.0,1.1的好多例子中,我们会看到这样风格的代码。
var Oo= function(){
var x;
var y;
return{
a:function(){
...
},
b:function(){
...
}
}
}();
咂一看,不是我们能理解的方式, function(){}(), 是何意?。
//()在这里,意味着方法已经执行,并且return里面的已经产生, 这样可能很难理解,那等同与执行 function oo(){},这样是否好理解些了?
BTW :这里要引入JavaScript的一个高级概念,“闭包”。(具体内容参考《JavaScript The Definitve Guid,5th Eddion》Section 8.8 –Function Scope and Closures ,也是被Douglas Crockford推荐的为数不多的两本书籍之一。), 当然不急着去翻,先把我的废话看完。
好了,看这种使用别扭的使用方式, 而这种方式,在我们的页面,或者其他类中, 调用Oo的a方法的时候,形式如下
Ext.onReady(Oo.a); 对,正是这样的一种JS编程方式,被Douglas Crockford作为JS的一种单例的实现, 大师还把它叫做“Module Pattern”,
好,如果我们不用所谓单例呢?, 就看看传统的对象方式,同学们肯定在Pototype盛行的时代,已经弄的一清二楚。
0o = function(){
this.x;
this.y;
}
Oo.prototype = {
a:function(){
this.x = 100;
},
b:function(){
this.y = 200;
}
}
//调用方式
Ext.onReady(function(){
var o = new Oo();
0.a();
});
再来,假使是个初学
相关文档:
在页面中我们最常见的页面元素就是input了,但是我们如何用JavaScript得到网页input中输入的value值呢,其实很简单,方法也不止一种,据我总结比较常用的就是下面的两种方法,闲话不多说了,下面那就来看看我说的方法吧:
方法一、
function print(){
var a=myform. ......
JavaScript的window对象的open方法的语法格式如下:
window.open("页面的URL","窗口名称","窗口参数");
页面的URL:页面的URL可以是相对路径,也可以是绝对路径。
窗口名称:弹出窗口的名称可以自行定义,它的意义在于,当你刷新原始的这页全窗口的时候,弹出窗口就会刷新一次;而如果把名称省略,改为"",那么当刷新这 ......
原文:JavaScript - The this keyword
在 JavaScript 中 this 是最强的关键字之一。这篇贴文就是要告诉你如何用好 this。
下面先讲如何在event handling
(事件处理)中用它,再接着是讲 this 的其他用法。
所有者(Owner)
先来看看函数 doSomething() 里的 this 究竟指向(refer to)了什么?
function doSomething() { ......
javascript单引号和双引号区别2009-08-27 10:13在一个网页中的按钮,写onclick事件的处理代码,不小心写成如下:
IE提示出错后,再漫不经心地改为:
结果还是出错。
这时,我就想不通了,虽然我知道最直接的解决方法是写成这样:
但为什么javascript中的转义字符\没有效果了呢 ......