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

《悟透javascript》学习笔记:五、奇妙的对象

引言
 
任何一个函数都可以为其动态地添加或去除属性,这些属性可以是简单类型,可以是对象,也可以是其他函数。也就是说,函数具有对象的全部特征,你完全可以把函数当对象来用。其实,函数就是对象,只不过比一般的对象多了一个括号“()”操作符,这个操作符用来执行函数的逻辑。即,函数本身还可以被调用,一般对象却不可以被调用,除此之外完全相同。请看下面的代码:
 
关于函数,上代码
 
<script language="javascript">
function Sing()
{
   with(arguments.callee)
     alert(author + ":" + poem);
};
Sing.author = "李白";
Sing.poem = "汉家秦地月,流影照明妃。一上玉关道,天涯去不归 ";
Sing();
Sing.author = "李战";
Sing.poem = "日出汉家天,月落阴山前。女儿琵琶怨,已唱三千年 ";
Sing();
</script>
 
(说明:
1.       with的用途是为其范围内的属性省略前缀,如arguments.callee.author和arguments.callee.poem就可以直接写成author和poem;
2.       arguments.callee:表示当前被调用的函数对象,也就是Sing,所以arguments.callee.author==Sing.author

 
从上面的代码看来,我们可以说,函数是可以被直接执行的特殊对象,它仅比对象多了对括号,而其它的都一样。(???不知这样说是不是完全正确)
 
    好了,以上的讲述,我们应该算理解了 function 类型的东西都是和 object 类型一样的东西,这种东西被我们称为“对象”。
 
关于对象,上代码
 
<script language="javascript">
var anObject = {};  //一个对象
anObject.aProperty = "Property of object";  //对象的一个属性
anObject.aMethod = function(){alert("Method of object")}; //对象的一个方法
//主要看下面:
alert(anObject["aProperty"]);   //可以将对象当数组以属性名作为下标来访问属性
anObject["aMethod"]();          //可以将对象当数组以方法名作为下标来调用方法
for( var s in anObject)           //遍历对象的所有属性和方法进行迭代化处理
alert(s + " i


相关文档:

javascript &css实现的长文章分页

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>FLYSO Blog-- JS代码实现的自动分页效果~!</TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT=""& ......

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>
</ ......

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

Thickbox

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

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

JavaScript 用到alert出乱码问题

             response.write "<script language='javascript'>"
             response.write "alert('用户名或密码错误!');"
             response.write "hist ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号