欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

js—深入原型之四数据类型应用、闭包沙箱 和递归

程序员文章站 2022-05-08 16:51:31
...
1、使用call方法来判断数据类型

 var obj=Object.prototype.toString();
		    console.log(obj);
		var obj1=Object.prototype.toString.call([]);
		console.log(obj1);
		var obj2=Object.prototype.toString.call('');
		console.log(obj2);
              console.log(typeof obj2);

返回:是字符串类型
[object Object]
call.html:14 [object Array]
call.html:16 [object String]
string

2、进一步判断类型

   function ff (type) {
         return function(obj){
             return Object.prototype.toString.call(obj)===type;
         }
     }
     var ty=ff('[object Array]');
     var bol=ty([12,32,14,35]);
     console.log(bol); //true
     
     var ty=ff('[object String]');
     var bol=ty('sdsd,sdsd');
     console.log(bol);    //true
     
     var ty=ff('[object Number]');
     var bol=ty(213123213);
     console.log(bol);    //true                             


3、//按不同条件实现排序
 function File (name,size,time) {
     this.name=name;
     this.size=size;
     this.time=time;
 }
 var file1=new File('xiaojie','200mb','2018');
 var file2=new File('cainiao','400mb','2011');
 var file3=new File('fukua','800mb','2001');
 var arr=[file1,file2,file3];
 function sortFile (attr) {
     return function(obj1,obj2){
         if (obj1[attr]>obj2[attr]) {
             return 1;
         } else if (obj1[attr]==obj2[attr]) {
             return 0;
         } else{
             return -1;
         }
     }
 }
 var ff=sortFile('size');
 arr.sort(ff);
 for (var i=0;i<arr.length;i++) {
     console.log(arr[i].name+"----------"+arr[i].size+"-----------"+arr[i].time);
 } 

4、闭包:两种形式

测试:闭包缓存数据:

返回都是11                                 ff接受的是f1函数的返回值,是有缓存的所以在上一次基础上加1


闭包点赞:

5、沙箱:

6、递归


js—深入原型之四数据类型应用、闭包沙箱 和递归
js—深入原型之四数据类型应用、闭包沙箱 和递归
案例:
js—深入原型之四数据类型应用、闭包沙箱 和递归
js—深入原型之四数据类型应用、闭包沙箱 和递归

相关标签: 原型