任何一个函数都可以为其动态地添加或去除属性,这些属性可以是简单类型,可以是对象,也可以是其
他函数。也就是说,函数具有对象的全部特征,你完全可以把函数当对象来用。其实,函数就是对象,只
不过比一般的对象多了一个括号“()”操作符,这个操作符用来执行函数的逻辑。即,函数本身还可以被调
用,一般对象却不可以被调用,除此之外完全相同。请看下面的代码:
function Sing()
{
with(arguments.callee)
alert(author + ":" + poem);
};
Sing.author = "李白";
Sing.poem = "汉家秦地月,流影照明妃。一上玉关道,天涯去不归
";
Sing();
Sing.author = "李战";
Sing.poem = "日出汉家天,月落阴山前。女儿琵琶怨,已唱三千年
";
Sing();
在这段代码中,Sing 函数被定义后,又给 Sing 函数动态地增加了 author 和 poem 属性。将 author
10
和 poem 属性设为不同的作者和诗句,在调用 Sing()时就能显示出不同的结果。这个示例用一种诗情画
意的方式,让我们理解了 JavaScript 函数就是对象的本质,也感受到了 JavaScript 语言的优美