javascript函数、面向对象高级应用

1.     函数内部返回函数  


function  fun1() {
    var  n  =  'df';
    
    function  fun2() {
        alert("++++"+n+"++++");
    }
    return  fun2;   //返回的是方法fun2的引用
}

var  rs  = fun1();     //
rs();    //掉的是fun2方法 

补充:  以上他妈的就是传说中的闭包,窝巢

2 .  函数定义和调用方式

var a =  function (a, b) {
    alert(a+b);
};

a(1,9);


匿名函数自调用

(function (a,b) {
    alert(a+b);
})(2,5);



3.  变量作用范围

局部变量   :javascript里边:在函数内部声明的变量,变量前边有”var“关键字。

全局变量  :

① 在函数外部声明的变量

② 函数内部不使用“var”声明的变量(函数调用之后起作用)

4.JavaScript的面向对象

//this is like a class  defined
function  class_df(a) {
    
    //私有属性
    var  name =  a;
    
    //like  function   public function  
    this.add  =  function (b) {
        alert("add function run ...." + b);
    };
    //like  function   public function 
    this.getName = function () {
        return name;
    };
    
    
}

// create  object  to class  
var  ojb_df =  new class_df('dengfei');

ojb_df.add("wonderfull");
alert(ojb_df.getName());


5. 对象调用其他函数/对象成员

   var obj = {
       name:"dengfei",
       age:22,
       
       pro:function(){
           alert(this.name+"prommer-----");
       }
   };
   
   function run() {
       alert(this.name+"running。。。。。");    //这里的this代表调用这个方法的对象
   }
   
   obj.active = run;   //给该对象整一个方法   引用传递  栈内存都指向function run
   
   obj.active();
   obj.pro();


6.   动态创建方法 
    var fun = new  Function("name", "age", "alert(name+age);");
    
    fun("dengfei",22);



7. return  对实例化对象的影响

            function  obj_fun(name ,  age ) {
                this.name = name;
                this.age  =  age;
                
                this.eat =   function () {
                    console.log(this.name+"eat ....");
                };
                return  ;
                
                this.sleeps =function () {
                    console.log("sleep.....");
                };
            }
            
            var  obj = new obj_fun("dengfei", 22);
            
            console.log(obj);   //obj_fun {name: "dengfei", age: 22}




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值