享受一个开源免费、目前最好的API接口管理平台—-eoLinker

一.概况

eoLinker 是眼前业内当先、国内最大的在线 API 接口管理平台,提供自动生成 API 文档、API 自动化测试、Mock 测试、团队合营等职能,目的在于缓解由于前后端分离造成的开支作用低下难点。

眼下 eoLinker 为 谷歌、IBM、腾讯、中国电信、Haier、神州优车、国美等数千家商家提供快速、专业、稳定的
API 管理服务。同时 eoLinker 照旧 谷歌 谷歌(谷歌)开发者联盟的通力合营产品与店家,不定期进行线下交换分享活动推进国内
API 管理世界的前进。

 

图片 1

各个绑定规则

 总结:

 eoLinker 吸收了 Postman 以及 RAP 等接口管理产品的亮点,开发出了广大专业首创以及超越的功力,同时针对国内市场做出了众多的优化革新,提倡远程办公和高速开发,深受举世的国语开发者的友爱,真正形成了让接口管理更简单。倘若你在工作中可能会用到接口,或者对接口感兴趣,推荐您注册一波询问一下。

new 构造函数绑定,this指向新创造的对象

 1 function createPerson(){
 2        return new person();
 3     }
 4     function person() {
 5         this.name = "Joel";
 6         this.say=function(){
 7             console.log(p)
 8             console.log('hello' + this.name)
 9         }
10     }
11     var p = new person();
12     p.say();
13     console.log(p.name);//Joel
14     console.log('开始')
15     var t=createPerson();
16     t.say();

任由是直接new 仍旧经过function createPerson 函数再次回到的目的,this
都是指向了新创造出来的靶子;

四.图片简介

图片 2

图片 3

图片 4

 

图片 5

 

思考题

 1     var length = 5;
 2     var obj = {
 3         foo: function (fn) {
 4             console.log(this.length); // this => obj
 5             fn(); // this => window
 6             arguments[0](); // this => arguments
 7             var bar = arguments[0];
 8             bar(); // this => window
 9         },
10         length: 10
11     }
12     var fn = function () {
13         console.log(this.length);
14     }
15     obj.foo(fn);
16     //10, 5, 1, 5

三.特性

1、免费且开源,eoLinker 拥有无敌的免费产品,在过去的一年里面
eoLinker 已迭代当先 300 个本子,优化近千功效点,同时选拔开源精神,提供国际化的开源产品(协助中文简体、繁体以及克罗地亚语),为常见的费用、测试以及管理人士提供专业的制品。

2、同类产品中最精锐的 API 文档管理种类,帮衬近来 HTTP/HTTPS 协议以及有着主流请求格局,并且提供了强有力的本子管理成效,可以随时随处回滚
API 信息。同时帮忙数据库管理、状态码管理、项目文档管理等常用管理职能。

3、代码自动生成文档,通过读取代码中的 EOML ( eoLinker 标注语言)申明,eoLinker 能够自动生成 API 文档,省去了重复录入的难为,无缝连接开发与管理工作。

4、API 接口测试,辅助文件、在线、跨域、自动化测试等效用。同时所有参数构造器,可以对请求参数进行自动构造,加密、分割、随机字符串等功能健全。合营测试用例可以分外便宜地对待请求结果与模型,找出
API 可能现身的题材。

5、API 自动化测试,eoLinker 是现阶段满世界唯一一款帮衬界面与代码双情势的自动化测试工具。在
UI 界面格局下,你不须求编制任何代码即可制造数量交互关联的
API 测试用例(比如注册-登录-检查登陆情状-退出登录);同时你也得以通过编制 Javascript 代码来布局复杂的自动化测试场景。那几个都极大地简化了支付测试人士的
API 测试工作,每一次开发形成只要求一个键即可自动测试所有
API 并且转变测试报告,帮忙精通项目 API 的健康情状。

6、API Mock 测试,提供最强的 Mock 作用,支持 MockJS,帮忙自动刷新重回结果以及各类再次来到的结果。同时还扶助对
API 进行呼吁校验,当参数或值不吻合预设的沙盘时亦可即刻找出难题所在。

7、襄助文档分享和导出,你能够经过 eoLinker 在线生成接口文档,也足以导出成为 HTML、PDF 以及 Word 等,连忙分享或公布 API 音信。

8、支持 Postman、RAP、RestClint 等数码导入,无需另行录入 API 新闻,一键导入即可切换平台。

9、强有力的团体合作作用,你可以透过 URL 火速邀约成员要么插足某个项目,eoLinker 提供了完善的日志追踪以及权限管理效果。

10、负有最全面的制品线,eoLinker 除了有着线上版本之外,还提供了免费开源版本、浏览器插件、PC 端桌面程序等,可以知足公司有着的 API 管理须要。

 前言

在《javascript
之实施环境-08》文中说到,当JavaScript代码执行一段可实施代码时,会创建对应的实施上下文(execution
context)。对于每个执行上下文,都有多少个紧要性质:

  • 变量对象(Variable object,VO)
  • 功用域链(Scope chain)
  • this

JavaScript中的this跟其余语言稍微不平等,比如Java .net言语中的this是在代码的履行等级是不可变的,而JavaScript的this是在调用阶段进行绑定。也因为这一特性给了this很大的灵活性,即当函数在差距的调用格局下都可能会招致this的值分化;

二.开源项目及链接

华语官网:www.eolinker.com

开源接济:https://www.eolinker.com/#/os/download

Github:https://github.com/eolinker

码云:https://gitee.com/eoLinker-API-Management

Coding:https://coding.net/u/eolinker/project

Blog:http://blog.eolinker.com

摄像教程:http://blog.eolinker.com/\#/course/

定义

  this
对象是在运行时依据函数的实践环境绑定的,跟函数的调用地方有关而不是宣称的地点;可以精晓为this是在函数调用阶段绑定,也就是履行上下文创造的等级展开赋值,保存在变量对象中;

默许绑定 严俊形式下this 绑定到undefined,否则绑定到全局对象 window

 1   function foo(){
 2         console.log(this)//window
 3         console.log(this.a)//Joel
 4     }
 5     var a='Joel';
 6     foo();
 7 
 8     //严格模式
 9     function fo(){
10         'use strict'  //严格模式
11         console.log(this)//undefined
12         console.log(this.b)//报错 Cannot read property 'b' of undefined
13     }
14     var b='Joel';
15     fo();

如上是着力的this绑定规则,其中new、彰显绑定很不难看清,其中比较易于错的是便于把默许绑定误认为是隐士绑定
如匿名函数、闭包、函数当做参数等;

独自调用:this 指向window

 1   var name='Joel',age=12;
 2     function say(){
 3         function say1(){
 4             console.log(this.name);//window
 5             function say2(){
 6                 name+='-l'
 7                 console.log(this.name);//window
 8             }
 9             say2()
10         }
11         say1();
12     }
13     say();
14 
15     //匿名函数
16     (function(){
17        console.log(this.name)
18     })()

function 当做参数传递其实跟独立调用一样的法则

 1 function foo() {
 2         console.log(this)//window
 3         console.log(this.a)//oops global
 4     }
 5     function doFoo(fn) {
 6         console.log(this);//window
 7         fn();//类似与 foo()
 8     }
 9     var obj = {
10         a: 2,
11         foo: foo
12     }
13     var a = 'oops global';
14     doFoo(obj.foo);

同理set提姆eout 也是千篇一律

 1  var obj = {
 2         a: 2,
 3         foo: function() {
 4             console.log(this); 
 5         },
 6         foo2: function() {
 7             console.log(this);   //this 指向 obj 
 8             setTimeout(this.foo, 1000);   // this 指向 window 
 9         }
10     }
11     var a = 'oops global';
12     obj.foo2();

闭包中的this

 1     var name = "Joel";
 2     var obj = {
 3         name: "My object",
 4         getName: function() {
 5             // var that = this;   // 将getNameFunc()的this保存在that变量中
 6             return function() {
 7                 return this.name;
 8             };
 9         }
10     }
11     console.log(obj.getName()());   // "Joel"

此地的即使是目标的章程格局调用obj.getName(),在getName中的this是指向obj,不过回到的匿名函数中的this
为何是window呢?

把最终的一句拆成多少个步骤执行:

1 var t=obj.getName();
2 t();

是否有点像在独立调用呢?倘诺急需拜访obj中的name,只必要把this对象缓存起来,在匿名函数中走访即可,把var
that=this;去掉注释即可;

总结

  • this
    是变量对象的一个特性,是在调用时被绑定的,跟函数的调用地方有关而不是声称的职责;
  • 找到调用地方,按照绑定规则来分析this 绑定;
  • 默许绑定严峻情势下this 绑定到undefined,否则绑定到全局对象 window;

隐士绑定

以目标的方法情势调用,this指向当前以此目标

 1    function foo(){
 2         console.log(this)//{a: 2, name: "Joel", foo: ƒ}
 3         console.log(this.a)//2
 4     }
 5     var obj={
 6         a:2,
 7         name:'Joel',
 8         foo:foo
 9     };
10     obj.foo();

这时候this指向当前obj对象,然则只要换种写法会造成this 丢失难题。

 1     function foo(){
 2         console.log(this)//{a: 2, name: "Joel", foo: ƒ}
 3         console.log(this.a)//2
 4     }
 5     var obj={
 6         a:2,
 7         name:'Joel',
 8         foo:foo
 9     };
10     obj.foo();
11     //this 丢失的问题
12     var t= obj.foo;
13     t(); //window undefined

变量t此时保留的是函数的引用跟obj已经没有涉嫌,所以那时this指向window。

呈现绑定,this指向传进去的对象

 1     //call() apply() bind() 显示绑定
 2     window.color = "red";
 3     var Obj = { color: "blue" };
 4     function sayColor() {
 5         console.log(this.color);
 6     }
 7     sayColor();// red this window
 8     sayColor.call(this);//red
 9     sayColor.call(window);//red
10     sayColor.call(Obj);// blue 把this指针改为对象Obj
11     sayColor.apply(Obj);//blue 把this指针改为对象Obj
12     sayColor.bind(Obj)();//blue 把this指针改为对象Obj

如果您把null/undefined作为this的绑定对象传入call/apply/bind,这么些值在调用时会被忽略,实际用的是默许的绑定规则;

1   function foo() {
2       console.log(this.a)
3     }
4    var a=2;
5     foo.call(null);//2
6     foo.call(undefined);//2

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图