易截截图软件、单文件、免安装、纯绿色、仅160KB

javascript的动态this与动态绑定

javascript是一门动态语言,最明显就是那个dynamic this。它一般都是作为函数调用者存在。在javascript,所有关系都可以作为对象的一个关联数组元素而存在。那么函数就是被掰成两部分储存于对象,一是其函数名(键),一是函数体(值),那么函数中的this一般都指向函数所在的对象。但这是一般而已,在全局调用函数时,我们并没有看到调用者,或者这时就是window。不过,函数声明后,其实并没有绑定到任何对象,因此我们可以用call apply这些方法设置调用者。
一个简单的例子:

window.name = "window";
var run = function() {
alert("My name is " + this.name);
}
run();


window.name = "window";
var run = function() {
alert("My name is " + this.name);
}
run()

运行代码
这里你不能说run是作为window的一个属性而存在,但它的确是被window属性调用了。实质上大多数暴露在最上层的东西都则window接管了。在它们需要调用时被拷贝到window这个对象上(不过在IE中window并不继承对象),于是有了window['xxx']与window.xxx性能上的差异。这是内部实现,不深究了。
另一个例子,绑定到一个明确的对象上

window.name = "window";
object = {
name: "object",
run: function() {
alert("My name is " + this.name);
}
};
object.run();


window.name = "window";
object = {
name: "object",
run: function() {
alert("My name is " + this.name);
}
};
object.run();

运行代码
答案显然易见,this总是为它的调用者。但如果复杂一点呢?

window.name = "window";
object = {
name: "object",
run: function() {
var inner = function(){
alert("My name is " + this.name);
}
inner();
}
};
object.run();


window.name = "window";
object = {
name: "object",
run: function() {
var inner = function(){
alert("My name is " + this.name);
}
inner();
}
};
object.r


相关文档:

JavaScript 获取对象的高度和宽度详细说明

scrollHeight: 获取对象的滚动高度。
scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离
scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离
scrollWidth:获取对象的滚动宽度
offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度
offsetL ......

[转]JAVASCRIPT 中meta的功能

meta是用来在HTML文档中模拟HTTP协议的响应头报文。
meta 标签用于网页的<head>与</head>中,meta 标签的用处很多。
meta 的属性有两种:name和http-equiv。name属性主要用于描述网页,
对应于content(网页内容),以便于搜索引擎机器人查找、分类
(目前几乎所有的搜索引擎都使用网上机器人自动查找m ......

javascript 的lastIndexOf

近日收集上万行代码,整理一些出来。
//V8引擎的实现
function ToInteger( n ) {
n = Number( n );
var sign = ( n < 0 ) ? -1 : 1;
if ( n != n ) {
return 0;
}
if ( Math.abs( n ) == 0 || Math.abs( n ) == Number.POSITIVE_INFINITY ) {
......

简单的javascript拖拽实例

简单的javascript拖拽实例----> 本人原创(244796562@qq.com)
<html>
<head>
<title>拖拽测试</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<div id="box" style="position:absolute;top:100px;left:200px;width ......

关于Javascript解析XML跨浏览器的尝试

javascript的跨浏览器的问题真的很烦人,
以前做AJAX的时候都是用responseText 因为功能要求都不是很复杂
现在想做一些RSS的合整,觉得用JS来做能节省很多的服务器资源
尽量往RIA的这边靠拢吧。
因为手头上没有一份完整的DOM的文档,解析XML来真的可以说的焦头烂额,
虽然用FOR IN 能读出对象的所有属性和方法,可惜这 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号