易截截图软件、单文件、免安装、纯绿色、仅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的变量作用域

深入理解JavaScript的变量作用域
http://www.cnblogs.com/rainman/archive/2009/04/28/1445687.html
在学习JavaScript的变量作用域之前,我们应当明确几点:
a、JavaScript的变量作用域是基于其特有的作用域链的。
b、JavaScript没有块级作用域。
c、函数中声明的变量在整个函数中都有定义。
1、JavaScript的作用域链 ......

在Javascript中创建对象

在Javascript中没有class类,但是同样也可以进行对象的创建。在面向对象的语言中需要实例化某个具体类的实例,在Javascript中则不用。
在Javascript里,对像可以创建新的对象,也可以继承自其他对象。这个概念称为原型化继承(prototypal inheritance)。
任何函数在Javascript 中都可以被实例化一个对象。
程序如下:
// ......

JavaScript 用到alert出乱码问题

             response.write "<script language='javascript'>"
             response.write "alert('用户名或密码错误!');"
             response.write "hist ......

IE和FireFox的兼容的javascript回车事件

<%@ 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 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号