当前位置: 首页 > news >正文

网站建设自学多长时间做网站原型的软件

网站建设自学多长时间,做网站原型的软件,企业网站翻译,深圳网站设计公司费用是我们到底能走多远系列#xff08;35#xff09; 扯淡#xff1a; 13年最后一个月了#xff0c;你们在13年初的计划实现了吗#xff1f;还来得及吗#xff1f; 请加油~ 主题#xff1a; 最近一直在写js#xff0c;遇到了几个问题#xff0c;可能初入门的时候都会遇到吧…我们到底能走多远系列35 扯淡   13年最后一个月了你们在13年初的计划实现了吗还来得及吗   请加油~   主题 最近一直在写js遇到了几个问题可能初入门的时候都会遇到吧总结下。 例子 var x 9; var fobj {x:1,test:function(callback){var x 2;callback();} } function pp(){var x 3;fobj.test(function(){alert(this.x)//9}) } pp(); 上面这段代码打印出的是 9 可以看到test的调用者是fobj可是在test中执行回调时callback();这调代码前面是空的。所以其实是有一个作为的全局调用了这个回调所以执行回调代码时的this则就是全局环境。 总结一下当方法被一个对象调用的时候fobj.test()那么this是绑定在fobj上的。 如果不是这样调用callback() 那么this则绑定在全局变量上。 回调函数中的this最好不要使用因为this指的是调用函数的那个对象。 回调函数作为参数传入一个方法我们就不能确定这个方法中的环境变量是怎样了的。 Function的bind方法 var x 9; var fobj {x:1,test:function(callback){var x 2;callback();} } function pp(){var x 3;fobj.test(function(){alert(this.x)//1}.bind(fobj)) } pp(); 使用bind方法后输出为1其中的this指向了fobj。 Array的forEach方法 在使用forEach方法的时候也有类似的场景这个方法提供了参数传入指定的上下文 例子 var x test; var ojb {x : obj } function pp(){var t [1,2,3,4];t.forEach(function(value,index){alert(this.x value);},ojb); } pp(); 以上代码就指定了forEach中第一个参数匿名函数的上下文为ojb。 详细的参数规则和方法使用教程摸我 循环回调函数问题 例子 for(var i1;i4;i){doCallBack(function(){alert(i);//1,2,3}); }function doCallBack(callback){var x callback;callback(); } 上面的代码执行结果看似没有问题在实际项目中使用回调异步一些耗时工作比如数据库的查询写node的时候这种情况很多那么会出现什么样的结果呢 看下下面的模拟 for(var i1;i4;i){doCallBack(function(){setTimeout(function(){alert(i);},1000)//4,4,4}); }function doCallBack(callback){var x callback;callback(); }      全部打印4导致这个发生的原因是因为回调函数中的耗时工作是异步的也就是说第一次循环执行到doCallBack的时候直接跳到for的末尾然后开始第二次循环一次类推当循环达到i的最大值4的时候跳出循环而延迟的工作开始了这时候他们打印i而这个i被加到了4所以就有了全部打印4的结果。 先理解下js中的作用域链比如下面的代码型式 function A(){var i 1;function B(){i 2;...} } function C(){...}      B方法的作用域链就像这样 B内部 -A内部 -全局也就是说方法内部的方法是可以引用到外部方法的变量的如果这个B方法在C被调用那么我们就实现C方法使用到了同级方法的作用域。其实我们就会认为这是一个闭包的行为。这样的作用域链机制带来的副作用在前面提到的例子中展示了。 解决办法  for(var i1;i4;i){(function(x){doCallBack(function(){// alert(x)setTimeout(function(){alert(x);},1000);//1,2,3});})(i) }function doCallBack(callback){callback(); }      这里我们可以看到加了个匿名方法包在外面然后直接传入i执行方法。还利用了这个i作为基本类型是按值传递的所以在函数内部是一个复制的值外部i的自增将不能改变内部函数的x的值了。 也可以写成这样 for(var i1;i4;i){!function(x){doCallBack(function(){// alert(x)setTimeout(function(){alert(x);},1000);//1,2,3});}(i) }function doCallBack(callback){callback(); } 用递归的办法感受下 function doCallBack(x){if(x1){return 1;}else{setTimeout(function(){alert(x);},1000);//4,3,2return doCallBack(x-1);}} doCallBack(4)   实际应用中遇到引用类型的时候展示使用里很土的办法先解决一下 代码类似3次循环修改成下面代码 var rstScoreMsg0 {score : scores[0],username : uids[0],expLoser : expLoser,expWinner : expWinner,uid : 0};var rstScoreMsg1 {score : scores[1],username : uids[1],expLoser : expLoser,expWinner : expWinner,uid : 0};var rstScoreMsg2 {score : scores[2],username : uids[2],expLoser : expLoser,expWinner : expWinner,uid : 0};recordUser(rstScoreMsg0);recordUser(rstScoreMsg1);recordUser(rstScoreMsg2); 理论上通过对象复制也是可行的。 让我们继续前行 ---------------------------------------------------------------------- 努力不一定成功但不努力肯定不会成功。 转载于:https://www.cnblogs.com/killbug/p/3457445.html
http://www.zqtcl.cn/news/793805/

相关文章:

  • 营销型的物流网站模板北京楼市最新消息
  • 宁波模版建站公司湘潭建设网站公司
  • 世界十大网站排名出炉最新军事新闻最新消息视频
  • 医疗电子的网站建设城市建设管理
  • win10建站wordpress商城网站结算页面怎么做
  • 电商网站模板引擎惠阳做网站公司
  • 如何在百度做网站推广中企动力企业邮箱手机邮箱
  • extjs做的网站开发公司宣传语
  • 长安做外贸网站关于阅读类网站的建设规划书
  • php网站建设思路方案阿里巴巴如何建设网站
  • 网站做什么推广好网站域名注册步骤
  • 官方建网站有哪些步骤国内成熟的crm系统
  • 建设银行深圳天健世纪支行网站电子商务网站建设员
  • 个人备案域名可以做企业网站吗海南做公司网站
  • 浙江坤宇建设有限公司网站施工企业施工生产计划
  • 成都建站推广域名备案用的网站建设方案
  • 西安市城乡建设管理局网站6一级域名生成二级域名
  • 网站建设沙漠风服装公司网站源码
  • 体检营销型网站php网站建设培训班
  • 做洁具最好的网站数据分析
  • 郑州网站建设丶汉狮网络网站建设中图片是什么意思
  • 深圳网站建设公司设计公司做影视网站用主机还是用服务器
  • 网站建设价格如何做问卷调查网站
  • 网络营销推广合同天津网站seo策划
  • 明年做那个网站致富wordpress loper
  • 网站开发原理柳州网站推广
  • 杭州高端网站开发重庆网站建设去迅法网
  • 营销型网站建设调查表用flash做游戏下载网站
  • 企业网站申请流程北京网站建设北京
  • 响应式网站导航栏模板python开发wordpress