javascript_公私有变量_ZHOU125disorder_

公私有变量

  1. 回调函数

回调函数的作用

回调函数可以减少全局变量的数量
从而达到优化的效果
回调函数:把函数当参数传进

DOM事件回调函数
定时器异步回调

<button></button>
var btn=document.getElementsByTagName("button")[0];
btn.onclick=function(){
console.log("我的名字叫卡卡西");
}

和定时器相似的东西
延时器

setTimeout(function(){
	alert("我的名字叫卡卡西");
},2048);
定义了函数但是没有调用最终却执行了

案例
1.

            function x(value){
                alert(value);
            }
            x("我的名字叫卡卡西");
            function y(content,value){
                content(value);
            }
            y(x,"我的名字我爱罗");

2.

            function x(content,value){
                content(value);
            }
            x(function(y){
                alert(y);
            },"我的名字叫卡卡西");
  1. 公私有变量

        // 私有变量,顾名思义就是私自的变量,外部无法访问
        // 公有变量,外部可以访问
function content(){
	var value="我的名字叫卡卡西";				//私有变量
	this.world="成为火影";						//公有变量
}
        var content=new content;
        console.log(content.value);		//undefined
        console.log(content.world);		//成为火影

解决方法

        function Content(){
            var x = function(){
                console.log("我的名字叫卡卡西");
            }
            this.y = function(){
                console.log("我的名字叫我爱罗");
            }
        }
        var content = new Content();
        content.y();
        content.x();
  1. ##特权方法
        // 变量的链式作用域
        // 全局作用域    局部作用域
 // var content="我没咋"
        // function value(){
        //     alert(content);
        // }
        // value();

    
        // function content(){
        //     var value="我的名字叫卡卡西";
        // }
        // console.log(value);

        // function x(){
        //     var content="我的名字叫卡卡西";
        //     function y(){
        //         var content="我的名字叫我爱罗";
        //         console.log(content);
        //     }
        //     y();
        // }
        // x();        //我的名字叫我爱罗

        // 链式作用域
        // x内部的局部变量对y是可见的,但是呢,y内部的变量对x来说,就是不可见的
        // 子级会一层一层向外寻找

        // 特权方法
        // 某些情况下,如果我们呢想在函数外部访问私有变量或者私有函数,就可以通过特权方法
        // 构造函数
        // 构造函数里面,通过我们新开拓的一个对外可见的公共接口(公有函数),通过这个公有函数找到内部私有变量或者函数


        //     function Fn(){
        //     var content = "我的名字叫卡卡西";
        //     var x = function(){
        //         return "我的愿望是成为火影";
        //     }
        //     this.y = function(){
        //         return content+x();
        //     }
        // }
        // var fn = new Fn();
        // console.log(fn.y());
  1. ##公私有变量
        var content=function(){
            return "我的名字叫卡卡西";
        }
        console.log(content);       //返回函数
        console.log(content());     //返回我的名字叫卡卡西
        var x=function(){
            function y(){
                console.log("我的名字叫卡卡西");
            }
            return y;
        }
        console.log(x());       //返回函数
        x()();                  //返回我的名字叫卡卡西
        y();
        y是属于x的,即y是x的内部函数,也叫私有函数,外部是无法访问的
        var x=function(){
            return function(){
                return "我的名字叫卡卡西";
            }
        }
        console.log(x());           //返回函数
        console.log(x()());         //返回我的名字叫卡卡西
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
请解释分析下面这段程序:%%%无序充电投标 clear clc load data_disorder Pch=[Pch_CS1_disorder;Pch_CS2_disorder;Pch_CS3_disorder;Pch_CS4_disorder];%充电站充电功率 %市场出清问题 Link=zeros(24,96);%时段换算矩阵(日前1h换算为实时15min) for i=1:24 Link(i,4*i-3:4*i)=1; end Loadcurve=[0.955391944564747,0.978345604157644,1,0.995019488956258,0.972932005197055,0.970333477695972,0.930489389346037,0.890428757037679,0.902771762667822,0.941966219142486,0.911000433087917,0.862061498484192,0.840190558683413,0.831095712429623,0.756604590731919,0.671719359029883,0.611520138588133,0.582936336076224,0.572542226071893,0.574707665656128,0.587267215244695,0.644218276310091,0.755521870939801,0.884798614118666]; Loadcurve=Loadcurve*Link;%换成96个时段 PL_base=[5.704;5.705;5.631;6.518;4.890;5.705;5.847]*1000;%负荷分布 PL=PL_base*Loadcurve;%基础负荷(负荷曲线从08:00开始算起,即第9个时段) Pf=sdpvar(7,96);%馈线功率 Pf(1,:)=PL(1,:)+Pch(1,:);Pf(2,:)=PL(2,:);Pf(3,:)=PL(3,:);Pf(4,:)=PL(4,:)+Pch(2,:);Pf(5,:)=PL(5,:)+Pch(3,:);Pf(6,:)=PL(6,:);Pf(7,:)=PL(7,:)+Pch(4,:);%馈线功率组成 Pg=sdpvar(10,96);%发电商分段电量 Pg_step=1000*[20,5,3,2,2,2,2,2,2,inf]';%报价区间 Price_DSO=[3:12]'*0.1;%分段电价 Obj=0.25*sum(sum((Price_DSO*ones(1,96)).*Pg));%目标为用电费用最小 Constraint=[0<=Pg<=Pg_step*ones(1,96),sum(Pg)==sum(Pf)];%约束条件 optimize(Constraint,Obj);%求解线性规划问题 Pg=double(Pg);%发电机功率 Pf=double(Pf);%馈线功率 isPg=(Pg>0);%为了计算出清电价,计算发电机分段选择情况 DLMP=sum(isPg)/10+0.2;%出清电价计算 %绘图 figure(1)%节点边际电价 stairs(DLMP); xlabel 时间 ylabel 电价(元/kWh) ylim([0.3,1.3]) figure(2)%负荷曲线 hold on plot(sum(PL)/1000); plot(sum(Pf)/1000,'r.-'); xlabel 时间 ylabel 负荷(MW) legend('基础负荷','无序充电负荷') Cost=sum(sum(Pch).*DLMP);%总用电费用 result_disorder.Cost=Cost;result_disorder.DLMP=DLMP;result_disorder.Pf=Pf;result_disorder.Pg=Pg;%结果保存 save('result_disorder','result_disorder');
06-14
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值