自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (2)
  • 收藏
  • 关注

原创 以变量名的值去访问php对象的属性

<?phpclass a { public $s=1; }$x = new a();$y='s';echo $x->$y;?>不能$x[’s’]这样访问,关联数组才能这样访问。

2017-02-21 23:36:05 2983

原创 尝试去实现一个Promise

function Promise(fn) { this._resolve = []; this._reject = []; this.next = null; this.value = null; this.state = 'pending'; this.id = Promise.idFactory(); fn && fn(this.resol

2017-02-17 03:11:18 754

原创 js中对bind返回的函数执行new的时候,instanceof的行为

function A(){}var b = A.bind({})var c = new b();c instanceof A // truec instanceof b // truees5文档中说到 When the [[HasInstance]] internal method of a function object F, that was created using the b

2017-02-13 03:11:19 510

原创 js中对一个bind返回的函数执行new时会怎样

function A(a,b){ this.a=a; this.b=b}var a = A.bind({x:1},1)var b = new a(2) // {a: 1, b: 2}加上上一篇文章中说的情况,我们可以总结到,当我们对一个bind返回的函数进行操作时,实际上这种操作是对目标函数的操作,也就是调用bind的函数。下面我们看一下es5文档的说明。 When the

2017-02-13 02:59:41 2312

原创 js中当函数执行bind后再次执行bind或call时会怎样

var test = function(x,y){ console.log(this,arguments)}var a=test.bind({s:1},1)a.call({d:1},2) // {s: 1} 1 2var b = a.bind({d:1},2)b()// {s: 1} 1 2var c = b.bind({e:3},3) c()从上面的代码执行结果中我们发现一点,

2017-02-13 02:48:40 2789

原创 js实现中介者模式

中介者模式主要用于一个系统中存在大量的对象,而且这些大量的对象需要互相通信,因为两个对象需要通信,一个对象必须要持有另一个对象,这样就会导致,系统里,每个对象都互相引用,会引起混乱,中介者把所有的对象都统一管理起来,其他的对象通过中介者去和别的对象通信。function A(mediator) { this.mediator = mediator;}A.prototype = {

2017-02-12 13:57:54 1190

原创 js的arguments分析

首先看一段代码 function test(x) { x=2 //or set arguments[0]=2; console.log(x,arguments[0]); } test(1)执行结果中可以发现,argument和函数的参数列表中的变量是有关联的,这里假设函数的实参和形参个数是一样的。这个结果的背后到底是怎么回事,看了一下es5的ar

2017-02-11 17:30:11 1202 1

原创 js原型继承中setter的行为

var name = 'zym';var parent = { set name(str) { name = str; }, get name() { return name; }};var child = Object.create(parent);console.log(child.name);child.name = 'hell

2017-02-11 03:40:08 489

原创 express的application.js里的路由代码

application.js是express框架的核心,也是里面包括了服务端的很多配置和逻辑代码。这里主要说一下和路由有关的一些代码。app.handle = function handle(req, res, callback) { var router = this._router;//这里一开始是空的,只有使用app的http verb方法或者use方法时才会去惰性加载 // final

2017-02-06 22:22:32 639

原创 express的router.js源码分析

router.js的代码其实是router/index.js,里面的代码是express的路由的核心和入口。下面我们看一下重要的代码。proto.handle = function handle(req, res, out) { var self = this; debug('dispatching %s %s', req.method, req.url); var search = 1 +

2017-02-06 21:44:15 1258

原创 express框架route.js源码解析

route.js并不是express里真正的路由代码,他只是其中的一个组成部分,和router(router/index.js)是有区别的。下面先看一下重要的代码。function Route(path) { this.path = path; this.stack = []; // route handlers for various http methods this.metho

2017-02-06 21:14:56 691

原创 express框架layer.js源码解析

layer.js是express框架的路由机制的底层数据结构。下面为主要源码,已经删除一些不太重要的代码。function Layer(path, options, fn) { if (!(this instanceof Layer)) { return new Layer(path, options, fn); } debug('new %s', path); var opt

2017-02-06 20:34:01 1084

原创 处理json解析中的非法字符

根据json的rfc文档https://tools.ietf.org/html/rfc7159中指出,json数据中的字符串含有引号和斜杠这些字符时需要转义,那么就会导致json解析出错,所以后端在返回之前最好进行转义或转unicode处理或者前端在解析json前先进行转义或转unicode处理。 示例:function toUnicode(arg) { var result = '';

2017-02-03 02:19:27 4936

libv8_monolith.a.zip

libv8_monolith.a.zip

2021-07-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除