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

《悟透javascript》学习笔记:六、放下对象

引言
 
再来看看function与object的超然结合吧。
 
    在面向对象的编程世界里,数据与代码的有机结合就构成了对象的概念。自从有了对象,编程世界就被划分成两部分,一个是对象内的世界,一个是对象外的世界。对象天生具有自私的一面,外面的世界未经允许是不可访问对象内部的。对象也有大方的一面,它对外提供属性和方法,也为他人服务。不过,在这里我们要谈到一个有趣的问题,就是“对象的自我意识”。
 
理解this
 
    JavaScript中也有this,但这个this却与C++、C#或Java等语言的this不同。一般编程语言的this 就是对象自己,而 JavaScript 的 this 却并不一定!this 可能是我,也可能是你,可能是他,反正是我中有你,你中有我,这就不能用原来的那个“自我”来理解 JavaScript这个this的含义了。为此,我们必须首先放下原来对象的那个“自我”。
 
<script language="javascript">
function WhoAmI(){
    //此时是 this 当前这段代码的全局对象,在浏览器中就是window 对象,其name属性为空字符串。输出:I'm of object
   alert("i'm " + this.name + " of " + typeof(this));
   alert("url is " + this.location);    //证明此时的this是window对象
}
WhoAmI();    //执行
 
var Bill = {name:"BillGates"}; //创建一个对象
Bill.WhoAmI = WhoAmI;  //为Bill增加一个WhoAmI的方法,并赋为上面的方法
Bill.WhoAmI();     //执行, 此时this是Bill
 
WhoAmI.call(Bill); //执行, 此时this是Bill
 
({name:"noName", WhoAmI:WhoAmI}).WhoAmI();
</script>
 
    在JavaScript函数中,你只能把this看成当前要服务的“这个”对象。this是一个特殊的内置参数,根据this参数,您可以访问到“这个”对象的属性和方法,但却不能给this参数赋值。在一般对象语言中,方法体代码中的this可以省略的,成员默认都首先是“自己”的。但JavaScript却不同,由于不存在“自我”,当访问“这个”对象时,this不可省略!(这段话很抽象)
 
     上面演示了多种this的传递方法,JavaScript提供了传递this参


相关文档:

javascript 合并数组

<html>
<body>
<script type="text/javascript">
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
var arr2 = new Array(3)
arr2[0] = "James"
arr2[1] = "Adrew"
arr2[2] = "Martin"
document.write(arr.concat(arr2))
</script>
</body>
</ ......

JavaScript事件

JavaScript事件分类:
1、捕获型(IE不支持)(从DOM结构的最顶端开始向下延伸)
2、冒泡型(从DOM结构的最低端向上一级级延伸)
【IE7以上可以给‘html’添加onclick事件,IE中body->html,火狐中html->body】
JavaScript添加事件监听:
1、IE:
[object].attachEvent("event_handler", fnHandler); ......

12个优秀的javascript(ajax)弹出层

Thickbox

-
基于
jQuery
,支持 AJAX,轻量级的而且比较高效。支持图片与HTML内容。大小约为
40k,目前还可作为 WordPress
的插件使用。这个js的优点在于与,父级的原页面滚动条随鼠标滚动的时候,弹出的层并不移动,而始终处于浏览器的固定位置。
 
GreyBox

- 创建 iframe 的弹出界面,可使用图片 ......

javascript中获取一个字符串中 特定字符串的个数

//统计字符串中特定字符串的个数
function getStrCount(scrstr,armstr)
{ //scrstr 源字符串 armstr 特殊字符
 var count=0;
 while(scrstr.indexOf(armstr) >=1 )
 {
    scrstr = scrstr.replace(armstr,"")
    count++;   
 }
 re ......

JavaScript_基于JS的进度条

开发时,需要用到的JavaScript进度条~~~
<style type="text/css">
#out {
width:200px;
height:16px !important;
border:1px solid #5858D1;
text-align:center;
position:relative;
font-size:12px;
_height:18px;
}
#out, #out * {
padding:0;
margin:0;
}
#num {
height:16px;
line-h ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号