[JAVASCRIPT] this 对象
看了很多javascrip代码,发现很多地方用到了this这个对象,那这个到底是什么东西阿?
先让我们来理解一个概念:
在javascript会有一个上下文的概念,任何一个对象无论是Object 还是function 都会有一个专有的上下文对象,也可以理解为它自己的拥有者。
那么我们很容易想到这个拥有者,必然有个终点,那就是window对象。
好了,那么我们理解了这个概念后,记住以下几个规则,就可以准确的判断this到底指的是个啥子玩意儿。
对象的私有对象,上下文是对象本身
匿名函数的上下文是window
用new的函数上下文为这个对象
让我们再来看些例子吧;
var testFun = function (){
alert(this);
};
testFun();
上述例子的结果是 window对象
var obj = {
getName : function() {
alert(this);
}
};
obj.getName();
上述例子的结果是一个OBJECT
根据上述理论,函数中嵌套匿名函数应该也是WINDOW对象,来看下面的代码
var obj = {
getName : function(){
var innerFun = function (){alert(this);}
}
};
obj.getName();
来看个构造函数的例子,this指的是对象
var obj = function() {
alert(this);
};
var test = new obj();
test();
介绍完毕,收工。。。。
相关文档:
scrollHeight: 获取对象的滚动高度。
scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离
scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离
scrollWidth:获取对象的滚动宽度
offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度
offsetL ......
推荐兼容 IE、 FireFox 的 javascript 日历控件
原创作者:寒羽枫(cityhunter172)
一、简介与声明
此日历控件是 CSDN 网友 KimSoft 的作品:http://blog.csdn.net/kimsoft/archive/2006/05/24/753225.aspx 。界面清爽,纯 ......
try { //Internet Explorer
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.loadXML(data);
} catch(e) { //Other Browsers
parser=new DOMParser();
xmlDoc=parser.parsefromString(data,"text/xml");
} ......
通常用typeof来判断js变量的类型,但很多时候仅仅typeof满足不了要求的。
我写了一个自定义函数来做这个事,判断的比较全面了。
New
function
varType(v){
if
(
typeof
v===
"object"
){
if
(v===
null
)
return
'null'
;
if
(v.
constructo ......
Javascript Closures
Introduction
The Resolution of Property Names on Objects
Assignment of Values
Reading of Values
Identifier Resolution, Execution Contexts and Scope Chains
The Execution Context
Scope chains and [[scope]]
Identifier Resolution
Closures
Automatic Garbage Collecti ......