设为首页 加入收藏

TOP

计算机二级辅导:悟透JavaScript(2)
2014-11-19 01:15:22 】 浏览:886
Tags:计算机 二级 辅导 悟透 JavaScript

  奇妙的对象


  先来说说函数的对象化能力。


  任何一个函数都可以为其动态地添加或去除属性,这些属性可以是简单类型,可以是对象,也可以是其他函数。也就是说,函数具有对象的全部特征,你完全可以把函数当对象来用。其实,函数就是对象,只不过比一般的对象多了一个括号“()”操作符,这个操作符用来执行函数的逻辑。即,函数本身还可以被调用,一般对象却不可以被调用,除此之外完全相同。请看下面的代码:


  function Sing()


  {


  with(arguments.callee)


  alert(author + ":" + poem);


  };


  Sing.author = "李白";


  Sing.poem = "汉家秦地月,流影照明妃。一上玉关道,天涯去不归";


  Sing();


  Sing.author = "李战";


  Sing.poem = "日出汉家天,月落阴山前。女儿琵琶怨,已唱三千年";


  Sing();


  在这段代码中,Sing函数被定义后,又给Sing函数动态地增加了author和poem属性。将author和poem属性设为不同的作者和诗句,在调用Sing()时就能显示出不同的结果。这个示例用一种诗情画意的方式,让我们理解了java script函数就是对象的本质,也感受到了java script语言的优美。


  好了,以上的讲述,我们应该算理解了function类型的东西都是和object类型一样的东西,这种东西被我们称为“对象”。我们的确可以这样去看待这些“对象”,因为它们既有“属性”也有“方法”嘛。但下面的代码又会让我们产生新的疑惑:


  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 + " is a " + typeof(anObject[s]));


  同样对于function类型的对象也是一样:


  var aFunction = function() {}; //一个函数


  aFunction.aProperty = "Property of function"; //函数的一个属性


  aFunction.aMethod = function(){alert("Method of function")}; //函数的一个方法


  编辑特别推荐:


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇计算机二级辅导:悟透JavaScript(1) 下一篇计算机二级辅导:悟透JavaScript(3)

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目