return

return

1.return返回,跳出
2.如果return后面不跟值,直接跳出返回undefined,跳出后,后面的语句就不再执行了
3.return 只能返回1个值,如果返回多个值,就用对象
4.函数执行时一般都会有返回值的,如果使用return,就会将return后面的内容返回出来;如果没有return 返回undefined

function fn(){
            return;
            return 1,2,3;//返回最后一个
            return 1;//当使用return时,直接跳出,不会继续执行后面的语句
            return 2;
            return 3;

            return [1,2,3];
            return {
                a:1,
                b:2,
                c:3
            }
        }

5.return可以省略很多向后执行的条件

function getNumberToCN(num){
           if(num<0) return "错误的数值";
           if(num<10) return arr[num];
           if(num===10) return "十";
           if(num%10===0) return arr[num/10]+"十";
           if(num<20) return "十"+arr[num%10];
           return arr[parseInt(num/10)]+"十"+arr[num%10];
        }
        var str=getNumberToCN(30);
        console.log(str);

定时器setInterval

var  ids=setInterval(function(){
            console.log("a");
        },16);
        var bool=true;
        document.onclick=function(){
            bool=!bool;
           if(!bool) clearInterval(ids);//停止
           else ids=setInterval(function(){
                console.log("a");
            },16);
        }

点击实现开关,代码如下

var bool=true;
       document.onclick=function(){
           bool=!bool;
       }

       setInterval(function(){
         if(!bool) return;
         console.log("a");
       },16);

return部分特征
1.返回对象

工厂模式

    function createObj(){
         var obj={a:1,b:2};
         return obj;
     }

     var o1=createObj();
     var o2=createObj();
     console.log(o1===o2);//false

这种代码每次都会返回一个新的内容

function tagHTML(tagName){
        var str="";
            var bool=false;
            switch(tagName){
                case "hr":
                case "br":
                case "img":
                case "input":
                case "meta":
                case "link":
                bool=true;
            }
         str="<"+tagName+">"+(bool ? "" : "</"+tagName+">");
        return str;
    }

    console.log(tagHTML("div"));//<div></div>
    console.log(tagHTML("input"));//<input>

特征:
var新建一个,并且返回新建的东西;
提供材料(输入),生成产品;
没有输入,每次产生的都是不同的产品,但是是相同类型
都不相同,没有重复的

单例模式

工厂模式的变形

var obj;
    function createObj(){
    	//1.
        // if(obj) return obj;
        // return obj={a:1,b:2};

		//2
        // if(!obj)obj={a:1,b:2};
        // return obj;

		//3
        return obj || (obj={a:1,b:2});
    }

    var o1=createObj();
    var o2=createObj();
    console.log(o1===o2);//true

2.返回函数

//返回一个有名函数
function getSum1(){
       var  fn=function(){
       }
       return fn;
    }
//返回匿名函数
function getSum2(){
       return function(){
       }
    }

函数在返回函数的过程中:返回函数执行结果/返回函数

function getSum1(){
       var  fn=function(){
          return 5;
       }
       return fn();//返回执行的结果
    }
    function getSum2(){
       var  fn=function(){
        return 5;
       }
       return fn;//返回函数
    }
    getSum2()();//返回fn执行结果

对象里的函数
1.在对象中调用对象内的属性必须使用this.来调用
2.在对象中this代表这个引用地址对应的对象
3.属性不能使用this。这个时候this指window

var obj={
        a:1,
        c:this.a,//属性不能使用this。这个时候this指window
        b:function(){
            // 在对象中调用对象内的属性必须使用this.
            // return this.a+1;
            // console.log(a);//没有变量a
            console.log(obj.a);
            console.log(this.a);//在对象中this代表这个引用地址对应的对象
            console.log("b");
            return this;
        },
        d:function(){
            console.log("d");
            return this;
        }
    }
var o=obj;
obj={c:10};
obj.b();
//这种情况下,obj的引用变了,如果在console.log(obj.a),执行结果为undefined,所以就用this.a
obj.b().d();//连缀,return this
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值