javascript 之 Closure
http://javascript.crockford.com/private.html
function a() {
var i = 0;
function b() {
alert(++i);
}
return b;
}
var c = a();
c();
当在函数b中访问一个变量的时候,搜索顺序是:
先搜索自身的活动对象,如果存在则返回,如果不存在将继续搜索函数a的活动对象,依次查找,直到找到为止。
如果函数b存在prototype原型对象,则在查找完自身的活动对象后先查找自身的原型对象,再继续查找。这就是Javascript中的变量查找机制。
如果整个作用域链上都无法找到,则返回undefined。
function Container(param) {
this.member = param;
}
var myContainer = new Container('abc'); //member='abc'
Container.prototype.stamp = function (string) {
return this.member + string;
}
myContainer.stamp('def') //member='abcdef'
function Container(param) {
//private method
function dec() {
if (secret > 0) {
secret -= 1;
return true;
} else {
return false;
}
}
this.member = param;
var secret = 3;
var that = this;
//privileged method
this.service = function () {
if (dec()) {
return that.member;
} else {
return null;
}
};
}
myContainer.service() //abc(first) null(second.....)
相关文档:
页面内嵌不同的网页内容时,导致iframe的高度无法与实现内容或浏览器高度相匹配。窗口大小变换时,不能iframe不能进行自动调整。这里,我们利用JAVASCRIPT让IFRAME框架的高度自适应。
首先,写出如下的JS方法。
/**
* 内嵌页面的高度设置
*/
function handleFrameLoad() {
var hDoc = getBodyHeight(document);
var ......
‘点正常链接方法很多,这里介绍的是自动点JavaScript链接
Function RunJS(scripts)
‘VB 自动点网页中的Javascript链接
Dim Document
On Error GoTo ErrHandle
......
【转】http://www.cnblogs.com/chenxizhang/archive/2010/01/01/1637309.html
如果我们需要在javascript访问到页面中定义的变量,大致是如下的语法
//这是2010年1月1日增加的代码
var ismanager = "<%= DepartManager %>";
if (ismanager == "true") {
$(" ......
【转】http://www.cnblogs.com/chenxizhang/archive/2010/01/01/1637309.html
如果我们需要在javascript访问到页面中定义的变量,大致是如下的语法
//这是2010年1月1日增加的代码
var ismanager = "<%= DepartManager %>";
if (ismanager == "true") {
$(" ......
FRAMESET 标签是 FRAME 元素的容器。
HTML 文档可包含 FRAMESET 元素或 BODY 元素之一,两者不能同时使用。
框架将网页分成几个框窗,同时取得多个URL。用<FRAMESET> <FRAME> 即可,所有框架标记需要放在一个总起的 html 文档里,这个档案只记录了该框架如何分割 ,不会显示任何资料,所以不必放入 <BODY& ......