- 博客(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
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人