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

来源:互联网 发布:mysql怎么打开 编辑:程序博客网 时间:2024/05/22 15:47

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  definedfunction  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
原创粉丝点击