js面向对象 函数

<!doctype html><html lang="en"><head>    <meta charset="UTF-8">    <title>Document</title></head><body><script>    //内部私有函数    function a(param){        function b(theinput){            return theinput * 2;        };        return "The result is " + b(param);    }//    console.log(a("10000"));

    //返回函数的函数    function t(){        alert(‘A!‘);        return function(){            alert(‘B!‘);        };    }//   t()();

   //函数内的函数    var j = function(){        function someSetup(){            var setup = ‘done‘;        }        function actualWork(){            alert(‘work-worky‘);        }        someSetup();        return actualWork;    }();

    //闭包函数    var n;    function f(){        var b = ‘b‘;        n = function(){            return b;        }    }//    console.log(f());//    console.log(n());    n在f里面被定义了函数在传到全局作用域的n里

    //函数以参数返回的闭包函数    function f(){        var arg=123;        var n = function(){   //内部函数           return arg;        };        arg++;        return n;  //返回给n    }//    var m = f();//    console.log(m());   
    //循环中的闭包函数   function q(){       var w = [];       var i ;      for(i=0;i<3;i++){          w[i] = (function(x){   //自调函数把参数X的值返回给数组              return function(){                  return x;              }          })(i)      }       return w;   }    var w = q();//    for(var i =0;i< w.length;i++){//        console.log(w[i]());//    }

    //闭包的两个设置,getter和setter    var getValue,setValue;    (function(){        var secret = 0;        getValue = function(){   //调用函数            return secret;        };        setValue = function(v){  //设置函数            secret = v;        }    })();

   setValue(123);  ////    console.log(getValue()) ;

    //迭代数    function serup(x){        var i = 0;        return function(){            return x[i++];        }    }    var next = serup([‘a‘,‘b‘,‘c‘]);//    console.log(next());

</script></body></html>
 //循环中的闭包函数   function q(){       var w = [];       var i ;      for(i=0;i<3;i++){          w[i] = (function(x){   //自调函数把参数X的值返回给数组              return function(){                  return x;              }          })(i)      }       return w;   }    var w = q();//    for(var i =0;i< w.length;i++){//        console.log(w[i]());//    }    //闭包的两个设置,getter和setter    var getValue,setValue;    (function(){        var secret = 0;        getValue = function(){   //调用函数            return secret;        };        setValue = function(v){  //设置函数            secret = v;        }    })();   setValue(123);  ////    console.log(getValue()) ;    //迭代数    function serup(x){        var i = 0;        return function(){            return x[i++];        }    }    var next = serup([‘a‘,‘b‘,‘c‘]);//    console.log(next());//循环中的闭包函数   function q(){       var w = [];       var i ;      for(i=0;i<3;i++){          w[i] = (function(x){   //自调函数把参数X的值返回给数组              return function(){                  return x;              }          })(i)      }       return w;   }    var w = q();//    for(var i =0;i< w.length;i++){//        console.log(w[i]());//    }    //闭包的两个设置,getter和setter    var getValue,setValue;    (function(){        var secret = 0;        getValue = function(){   //调用函数            return secret;        };        setValue = function(v){  //设置函数            secret = v;        }    })();   setValue(123);  ////    console.log(getValue()) ;    //迭代数    function serup(x){        var i = 0;        return function(){            return x[i++];        }    }    var next = serup([‘a‘,‘b‘,‘c‘]);//    console.log(next());//循环中的闭包函数   function q(){       var w = [];       var i ;      for(i=0;i<3;i++){          w[i] = (function(x){   //自调函数把参数X的值返回给数组              return function(){                  return x;              }          })(i)      }       return w;   }    var w = q();//    for(var i =0;i< w.length;i++){//        console.log(w[i]());//    }    //闭包的两个设置,getter和setter    var getValue,setValue;    (function(){        var secret = 0;        getValue = function(){   //调用函数            return secret;        };        setValue = function(v){  //设置函数            secret = v;        }    })();   setValue(123);  ////    console.log(getValue()) ;    //迭代数    function serup(x){        var i = 0;        return function(){            return x[i++];        }    }    var next = serup([‘a‘,‘b‘,‘c‘]);//    console.log(next());
时间: 2024-10-27 05:24:14

js面向对象 函数的相关文章

js面向对象编程: js类定义函数时prototype和this区别?

在面向对象编写js脚本时,定义实例方法主要有两种 如下: function ListCommon2(afirst) { var first=afirst; this.do1=function () { alert("first do"+first); } } ListCommon2.prototype.do2=function() { // alert("first do"+first);//会出错,不能访问first this.do1(); } this.do1=

JavaScript (JS) 面向对象编程 浅析 (含对象、函数原型链解析)

1. 构造函数原型对象:prototype ① 构造函数独立创建对象,消耗性能 function Person(name) { this.name = name; this.sayHello = function () { console.log("Hello,my name is " + this.name) } } var P1 = new Person("Tom"); var P2 = new Person("Jim"); P1.sayHe

js面向对象的系列

在面向对象语言中如java,C#如何定义一个对象,通常是定义一个类,然后在类中定义属性,然后通过new 关键字来实例化这个类,我们知道面向对象有三个特点,继承.多态和封装.那么问题来了,在javaScript中如何定义一个类?在javaScript中如何定义类的属性?如何继承?带着这些问题开始我们的js面向对象之旅吧. 在js中如何定义类? js中是没有类的概念的,但是我们通常会用一个函数定义成一个类.funtion class1(){ //类的成员定义 } 这里class1既是一个函数也是一个

简单粗暴地理解js原型链--js面向对象编程

简单粗暴地理解js原型链--js面向对象编程 原型链理解起来有点绕了,网上资料也是很多,每次晚上睡不着的时候总喜欢在网上找点原型链和闭包的文章看,效果极好. 不要纠结于那一堆术语了,那除了让你脑筋拧成麻花,真的不能帮你什么.简单粗暴点看原型链吧,想点与代码无关的事,比如人.妖以及人妖. 1)人是人他妈生的,妖是妖他妈生的.人和妖都是对象实例,而人他妈和妖他妈就是原型.原型也是对象,叫原型对象. 2)人他妈和人他爸啪啪啪能生出一堆人宝宝.妖他妈和妖他爸啪啪啪能生出一堆妖宝宝,啪啪啪就是构造函数,俗

js面向对象程序设置——创建对象

<script type="text/javascript">            //工厂方式        //1.原始方式        /* var objCar=new Object();        objCar.name="劳斯莱斯";        objCar.color="blue";        objCar.showColor = function() {          alert(this.colo

js面向对象编程:如何实现方法重载

js中如何实现方法重载?这涉及到三个问题 1同名函数的调用问题 2函数中特殊的参数arguments 3如何利用arguments实现方法重载 1同名函数的调用问题 都知道在js中如果存在多个名称相同的函数,则调用实际每次都只使用最后一个,js其实是没有重载的,也就是说,如果定义了多个同名的函数,单参数不一样,在调用时,js不管参数个数,只管前后顺序 例如: function test1(arg1) { alert("参数1:"+arg1); } function test1(arg1

js面向对象编程:如何定义常量?

js中有一个关键字const,但目前的浏览器似乎还不支持,如果一定要定义一些常量,其实可以使用闭包,匿名函数实现常量的定义. 例如: var Class = (function() { var UPPER_BOUND = 100;//定义了常量 var Test={}; // 定义了一个静态方法 获取常量的方法 Test.getUPPER_BOUND=function() { return UPPER_BOUND; } return Test; })(); 用法: var k=Class.get

JS 面向对象 编程设计

面向对象的语言有一个标志,即拥有类的概念,抽象实例对象的公共属性与方法,基于类可以创建任意多个实例对象,一般具有封装.继承.多态的特性!但JS中对象与纯面向对象语言中的对象是不同的,ECMA标准定义JS中对象:无序属性的集合,其属性可以包含基本值.对象或者函数.可以简单理解为JS的对象是一组无序的值,其中的属性或方法都有一个名字,根据这个名字可以访问相映射的值(值可以是基本值/对象/方法). 一.理解对象: 第一种:基于Object对象 var person = new Object(); pe

JS面向对象(3) -- Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法

相关链接: JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式 JS面向对象(2) -- this的使用,对象之间的赋值,for...in语句,delete使用,成员方法,json对象的使用,prototype的使用,原型继承与原型链 JS面向对象(3) -- Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法 1.Object类 在JS中,Object是所有类的基