《悟透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
相关文档:
response.write "<script language='javascript'>"
response.write "alert('用户名或密码错误!');"
response.write "hist ......
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="login.aspx.cs" Inherits="login" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="serve ......
开发时,需要用到的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 ......