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

网站开发商最好的做网站的公司

网站开发商,最好的做网站的公司,遵义哪里有做网站的,网络工程好找工作吗立即执行函数 代码(function () {// ... })();创建函数的同时立即执行#xff0c;没有绑定任何事件#xff0c;也无需等待任何异步操作function () {} 是一个匿名函数#xff0c;包围它的一对括号将其转换为一个表达式#xff0c;紧跟其后的一对括号调用了这个函数。立即执…立即执行函数 代码(function () {// ... })();创建函数的同时立即执行没有绑定任何事件也无需等待任何异步操作function () {} 是一个匿名函数包围它的一对括号将其转换为一个表达式紧跟其后的一对括号调用了这个函数。立即执行函数也可以理解为立即调用一个匿名函数。最常见的应用场景就是将变量的作用于限制于函数内避免命名冲突。实现代码模块化。 闭包 概念 定义在函数内部能够访问其他函数局部变量的函数。只有函数内部的子函数才能读取局部变量因此可以把闭包理解成定义在一个函数内部的函数。 闭包的作用 通过闭包可以在函数外部访问函数内部的变量闭包将函数外部和内部进行了链接。使用闭包之后外部函数的变量就会被存在内存中不会被垃圾回收机制回收。闭包让你可以在一个内层函数中访问到其外层函数的作用域。MDN 闭包 在 JavaScript 中闭包会随着函数的创建而被同时创建。当外部函数返回之后内部函数依然可以访问外部函数的变量。function f1() {let n 0;// f2() 是内部函数一个闭包function f2() {n 1; // 使用了父函数中声明的变量alert(n);}return f2; } let f f1(); f();f1()创建了一个局部变量n和一个名为f2()的函数。f2()是定义在f1()里的内部函数并且仅在f1()函数体内可用。f2()没有自己的局部变量因为它可以访问到外部函数的变量所以f2()可以使用父函数f1()中声明的变量n。词法作用域根据源代码中声明变量的位置来确定该变量在何处可用。嵌套函数可访问声明于它们外部作用域的变量。 使用闭包定义私有变量 function P() {let name;this.setName function(value) {name value;}this.getName function() {return name;} } let p new P(); p.setName(Func); console.log(p.name); // undefined console.log(p.getName()); // Funcprototype 每个 JavaScript 的构造函数都有一个 prototype属性用于设置所有实例对象需要共享的属性和方法。prototype属性不能列举。JavaScript 仅支持通过prototype属性进行继承属性和方法。function Func(x, y) {this.length x;this.width y; } Func.prototype.getDimensions function() {return {length: this.length,width: this.width} } let x new Func(3, 4); let y new Func(5, 6); console.log(x.getDimensions()); console.log(y.getDimensions());变量提升 函数首先被提升然后才是变量。函数提升优先级比变量提升要高且不会被变量声明覆盖但是会被变量赋值覆盖。当变量仅声明未初始化或赋值和函数同名时引用变量名函数名的位置如果是在变量被赋值之前那么此时引用的就是函数如果引用是在变量赋值之后那么引用的就是变量。函数声明和变量声明提升以及优先级 柯里化 让函数变得更加灵活可以一次性传入多个参数调用它也可以只传一部分参数让它返回一个函数去处理剩下的参数let add function(x) {return function(y) {return x y;} } console.log(add(1)(1)); // 2 let add1 add(1); console.log(add1(2)); // 3函数重载 理解下面代码需要知道一个知识点let len (function() {}).length; console.log(len); // 0let len1 (function(a) {}).length; console.log(len1); // 1let len2 (function(a, b) {}).length; console.log(len2); // 2一个function直接.length返回的是函数期望传入的参数数量即形参的个数。 function addMethod(object, name, f) {let old object[name];object[name] function() {if (f.length arguments.length) {return f.apply(this, arguments);} else if (typeof old function) {return old.apply(this, arguments);}} }function find0() {return this.names; }function find1(firstName) {let result [];for (let i 0; i this.names.length; i) {if (this.names[i].indexOf(firstName) 0) result.push(this.names[i]);}return result; }function find2(firstName, secondName) {let result [];for (let i 0; i this.names.length; i) {if (this.names[i] firstName secondName) result.push(this.names[i]);}return result; }let people {names: [Tom Jerry, Tom Dog, Jerry Dog]};addMethod(people, find, find0); addMethod(people, find, find1); addMethod(people, find, find2);console.log(people.find()); // 调用 find0 console.log(people.find(Tom)); // 调用 find1 console.log(people.find(Tom, Jerry)); // 调用 find2从效果上来说people对象的find方法允许 3 种不同的输入0 个参数时返回所有人名1 个参数时根据 firstname 查找人名并返回2 个参数时根据完整的名称查找人名并返回。难点在于people.find只能绑定一个函数那它为何可以处理3种不同的输入呢就此片段中addMethod函数的调用顺序可知people.find最终绑定的是find2函数然而在绑定find2时old为find1绑定find1时old为find0。3 个函数通过闭包链接起来。
http://www.dnsts.com.cn/news/176664.html

相关文章:

  • 信息部网站建设工作计划武进网站建设怎么样
  • 郑州网站托管公司绍兴seo
  • .net建设网站步骤详解全国卫生计生机构建设管理系统网站
  • 网站生成器下载网页微信版文件传输
  • 怎么可以做网站的网站网页制作培训班课程
  • 网站转移如何百度推广
  • 工作是套模板做网站城市分类信息网站建设
  • 西安网站建设王永杰家居网站建设费用
  • 用php做网站需要什么软件perl网站建设
  • 黑龙江建设人员证件查询网站flash教程网站都有哪些
  • 图片瀑布流网站模板手机网站特效代码
  • 企业年金是什么?缴费比例是多少?沈阳网站排名优化
  • 做网站需要什么代码域名访问网站 过程
  • 出国看病网站开发宣传型网站的实现技术手段
  • 网站百度统计表格怎么做在百度网站备案查询上显示未备案是什么意思
  • 服务好的南昌网站制作注册城乡规划师教材
  • 手机网站开发开发公司做网站比较好的平台
  • 西安seo整站优化简约创意logo设计免费生成
  • 万网网站备案教程陕西企业名录大全
  • 呼和浩特市网站建设山东川畅科技网站设计
  • 做网站推广代理网站新闻审核怎么做
  • 免费网站系统下载苗木网站什么做
  • 网站的费用多少合适网站如何建设推广
  • 竖排导航网站航空摄影设计
  • 公司vi设计网宁波网站优化体验
  • 做电商的几个网站吗南软科技网站开发
  • 盐山县网站建设公司益阳市赫山区建设局网站
  • 长沙专业网站建设运营手机 网站开发软件有哪些
  • 建立网站的要素网站美工设计
  • 丰台网站建设公司电话广告设计月薪多少钱