call的实现原理及一个很好的应用场景
2017-08-11 18:12
267 查看
call方法是js中比较重要的一个知识点,看了很多介绍也未必能够对他有个深刻的理解,那就让我们看看他的实现原理吧。
原型链继承的一般写法,一直感觉不够简洁
偶然发现的call方法优化,感觉高大上很多
//这个方法只是简单的模拟了call的实现原理,对context是否非空,参数对象素组字符串的类型都没有做处理。 Function.prototype.call2 = function(context) { context.fn = this; var args = []; for(var i = 1, len = arguments.length; i < len; i++) { args.push('arguments[' + i + ']'); } //args数组自动toString处理 eval('context.fn(' + args +')'); delete context.fn; }
原型链继承的一般写法,一直感觉不够简洁
function MyObject(name, message) { this.name = name.toString(); this.message = message.toString(); } MyObject.prototype.getName = function() { return this.name; }; MyObject.prototype.getMessage = function() { return this.message; };
偶然发现的call方法优化,感觉高大上很多
function MyObject(name, message) { this.name = name.toString(); this.message = message.toString(); } (function() { this.getName = function() { return this.name; }; this.getMessage = function() { return this.message; }; }).call(MyObject.prototype);
相关文章推荐
- Scala中Stream的应用场景及其实现原理
- 转:etcd:从应用场景到实现原理的全方位解读
- etcd:从应用场景到实现原理的全方位解读
- 一起谈.NET技术,【经验总结】C#常用线程同步方法应用场景和实现原理
- etcd:从应用场景到实现原理的全方位解读
- JavaScript模板引擎的应用场景及实现原理
- [置顶] etcd:从应用场景到实现原理的全方位解读
- 对生成对抗网络GANs原理、实现过程、应用场景的理解(附代码),另附:深度学习大神文章列表
- etcd:从应用场景到实现原理的全方位解读
- ThreadLocal的底层实现原理与应用场景
- memcache的应用场景和实现原理
- 【经验总结】C#常用线程同步方法应用场景和实现原理
- etcd:从应用场景到实现原理的全方位解读
- etcd:从应用场景到实现原理的全方位解读
- etcd:从应用场景到实现原理的全方位解读
- etcd:从应用场景到实现原理的全方位解读
- etcd:从应用场景到实现原理的全方位解读
- etcd:从应用场景到实现原理的全方位解读
- etcd:从应用场景到实现原理的全方位解读
- etcd:从应用场景到实现原理的全方位解读