javascript基础 面向对象编程

玩了flex 5年,一直都用它做界面,由于主要是做企业后台界面,还不错。

但是:flex开发工具需要注册码  配置繁琐,在看过同事用html5做出很炫的界面后,我决定学学html5做界面

 

javascript学了两天了,感觉还是有很多新东西,特别是面向对象这一块,有点费解,记下来,分享一下。javascript是面向对象的

 

一、进行javascript 面向对象编程,其要素很简单,就是两个要素 :{} 、[]

       {}就是javascript的对象表示,javascript中没有类的概念,就是用 {} 直接实例出一个对象

        var myobj = {};

       [] 表示数组,其实数组也是对象,但是我们要在心里有 “对象”  和 “数组” 这两个概念,个人感觉会清晰一些。

 

二、javascript的世界,都是对象

     var obj; obj就是一个对象了,感觉javascript定义一个对象很随意:

     var obj ; var obj = {};    var obj=[] ;  var obj = function(){}; function obj(){};  注意  函数也是对象,函数就是{}

    

     下面是一个复杂点实例,同JSON语法

     var dd = {                "name":"dd",               

                                    "setName":function(name){                    this.name = name;                }    ,

                                    "list":[{},{}]       

                  };

 

三、this 引用,new关键字

     this这个关键字指向的是当前对象,看代码

     var cc = {"name":"xiao li"};//定义cc对象

      alert(window.cc.name);

      alert(this.cc.name) ;  //和上一句结果一样,说明this指向window,说明当前对象就是window

     注意:window就代表可视化的页面窗口,可理解为就是页面。我们可以把它当作顶层对象。接着看new和this的代码

       function myObj(){
                this.name="名字";       //this指向当前对象
                this.setName = function(name){
                    this.name = name;
              };
       }

       var obj1 = new  myObj();    //myobj是一个对象,new 语句让myobj复制了一个新的对象,并赋值给了obj1

       obj1.setName("小李"); // 

       var obj2 = new  myObj();    // obj2就是一个全新的myObj,obj2中的this当然指向obj2啦  (上面的obj1当然一样)

       obj2.setName("大李");

 

四、函数充当构造子,()充当“main”,...静态函数

      function myobj(name,age){

               this.name = name;

               this.age = age;

               this.setAge = function(age){

                    this.age= age;

                    staticfun(this.name); 

              }

              (function main(){   alert("fff");  })(); //我们用()当main函数

              function staticfun(name){     //没有把函数指向this内部的任何一个变量,他相当于一个静态函数,

                                                        //javascript没有类的概念,不能调用 myobj.staticfun("name")。

                   alert(name);

             }

      }

      var obj1 = new myobj();    //函数充当构造子,有点像java了,

 

 体会:javascript已经对象化了,我们就要把所有的事物都当成对象,应用面向对象的思想写代码。另外,javascript编程的方式与java不同,我觉得他是一种“面向实例的编程”方式,比java代码更加的简洁,以下代码诠释了这一点。

     

   var obj = {};

   obj.name = "dddd";

   obj.fun  = function(x){alert(x)};

   obj.fun("xxx");

   

 

 

 

    

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值