横扫javascript(OOP篇一)

本文探讨了JavaScript中Eval函数的使用及特点,并深入讲解了该语言的面向对象机制,包括如何利用prototype创建类和对象,以及命名空间的定义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

  没想到还有个Toolkit。先提供一个asp.net ajax牛人的博客啦。点此处进入

  关于javascript的Eval函数!!Eval的基本用法深入认识Eval

  刚才在看asp.net ajax library的API时,发现一些东西是用Eval实现。好奇之下查了,原来Eval居然是用来执行一个包含javascript代码的字符串的。也就是说,我们可以执行一个实际上是字符串的代码。爽啊。尽管.net 3.5中已支持lambda表达式,但是,像Eval这种强悍的功能还是不能办到。

  用ajax向服务器端请求数据,如果以xml来描述交换的数据,那么在客户端将比较郁闷,因为用dom来解析xml比较麻烦。我第一次接触到json。原来json也是一种数据描述文本。点此处可见其简介在c#中使用json

  各种ajax框架都依赖于javascript中的面向对象特性,事实上javascript真的不是什么面向对象语言,只是提供一些支持罢了,但是,各个框架都站在这狭小的一点上把oop放扬光大了。所以,尽管我对于javascript已蛮熟悉,我还是得来看一看javascript关于面向对象支持的基础。

  Ojbect对象:

  prototype这是整个javascript面向对象根基在,要为一个类、对象添加方法、属性,都是用它了。我查了很久,都没有哪个中文资料都prototype进行比较完备的描述,有的只是prototype.js的资料。protoptype表示原型对象。在javascript中。所有对象都是其原型对象的副本。对象从其原型对象中继承方法与属性。而对象的原型又从原型的原型继承,这样,形成了一条链。如果对一个对象调用m方法,那么,它会先在自身找这个方法,没有找到就会从原型中找此方法,如果还没有找到就会从原型的原型中找,一直找上去,直到找到Object.prototype。这就是javascript的原型链。可惜,这个原理在我看到的所有资料中很少提及。所以很晚才懂得这些。真是失误啊。

  刚才才晓得,下面的代码居然可以运行:

  var obj=new Object();

  obj.name="刘伯平";

  obj["name"]="刘伯平<br/>";

  obj.age="18";

  document.getElementById("lbl_Info").innerHTML=obj.name;

  真是不可思议的语言啊。在正统编程语言,这想都不要想。找到一篇好文:javascript面向对象的支持深入认识javascript中的函数javascript函数对象进阶

  总结上面的几篇资料,总结了一些有用的方法:

  一、声明一个类

            function Car(){
               this.name="吉普车";
               this.price="12万人民币";
               this.count="10000台";
              
               this.toString=function(){
                  return this.name+" "+this.price+" "+this.count;
               }
            }
            
          var o=new Car();
            display(o);

  在这里,Car与OOP中的类是何其相像,基本上可以当成类来用了。

  二、定义命名空间

  var Buddha=new Object();   //定义根命名空间;

  Buddha.Utils=new Object();      //定义第二级命名空间;

  Buddha.Utils.Car=function(name,price,count){

    …………

  }

  命名空间就是这么定义来的,跟定义对象完全一样。

  三、javascript中的所有对象本质上都是属性与方法的集合。因此,以下代码成立

            var dic=new Object();
            for(var i=0;i<=10;i++)
              dic[i]="第"+i+"个元素";    

          
            for(i in dic)
              document.write(dic[i]+"<br/>");

  原来,在javascript中也是有类似于for each之类的语句的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值