首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    学习Javascript之模拟实现call,apply

    总括: 本文从零开始通过提出问题然后解决问题的方式模拟实现了比较完善的call和apply方法 参考文档:Function.prototype.call(),Function.prototype.apply...2 foo.call(obj2, 2); // 4 foo.apply(obj1, [1]); // 2 foo.apply(obj2, [2]); // 4 对于this不熟悉的同学可以先异步:理解Javascript...总结起来一句话:Javascript函数的this指向调用方,谁调用this就指向谁,如果没人谁调用这个函数,严格模式下指向undefined,非严格模式指向window。...如上,call和apply只有参数的不同,模拟实现了call,那么apply就只是参数处理上的区别。...this; context[this.name](); delete context[this.name]; } this.name是函数声明的名称,但其实是没必要一定对应函数名称的,我们随便用一个

    66310

    用Fiddler模拟低速网络环境

    有时候宽频网路用习惯了… 在开发的过程就比较少去考虑最佳化的问题… 但当有人反应说「你的网页好慢」 甚至当网路速度慢,会造成你的网页跳出什么啊哩不哒的bug时要如何重现呢?...我们可以用Fiddler 这套强大的web Debugging 工具… Fiddler是一个web调试代理。...我们为什么要限速 限速对于web前端研发是非常重要的,由于开发者的机器一般配置都很高,并且是在localhost下来调试程序,所以很难模拟到用户的真实使用情 况,如正在下载JS,css等静态资源的时候,...fiddler模拟限速的原理 我们可以通过fiddler来模拟限速,因为fiddler本来就是个代理,它提供了客户端请求前和服务器响应前的回调接口,我们可以在这些接口里 面自定义一些逻辑。...Fiddler的模拟限速正是在客户端请求前来自定义限速的逻辑,此逻辑是通过延迟发送数据或接收的数据的时间来限制网络的下载速度和 上传速度,从而达到限速的效果。

    1.2K20

    【JavaScript】吃饱了撑的系列之JavaScript模拟多线程并发

    前言 最近,明学是一个火热的话题,而我,却也想当那么一回明学家,那就是,把JavaScript和多线程并发这两个八竿子打不找的东西,给硬凑了起来,还写了一个并发库concurrent-thread-js...本文中的线程指的都是用JS异步函数模拟的“假线程”,不是真正意义上的多线程,请不要误解⚠️ github地址 https://github.com/penghuwan/concurrent-thread.js...(JAVA是有但是不准用,即废弃了而已) // 模拟线程中断 interrupt(threadName) { if (!...那就是我们JavaScript最喜欢的套路: 事件流! 我们下面使用event-emitter这个前后端通用的模块实现事件流。...写个返回Promise的函数,用await修饰,它就停啦! 你想控制它(await)不要停了,继续往下走?OK!

    1.7K10

    JavaScript怎么模拟 delay、sleep、pause、wait 方法

    JavaScript缺少这个内置功能,但不用担心。在这篇文章中,我们将探讨在JavaScript代码中实现延迟的各种技巧,同时考虑到该语言的异步性质。...JavaScript中处理时间有其细微之处,了解这些可能会对你有所帮助。 理解JavaScript的执行模型 现在我们已经有了一个快速的解决方案,让我们深入了解JavaScript的执行模型的机制。...如何在JavaScript中正确使用SetTimeout 既然我们已经更好地理解了JavaScript的执行模型,让我们看看JavaScript是如何处理延迟和异步代码的。...那么 setTimeout 实际上有什么用呢?现在让我们来看看。...虽然你可以使用各种方法来模拟一个Sleep函数,但还有另一种经常被忽视的方法:递增超时。 这个思路很简单:你不是暂停整个执行线程,而是使用 setTimeout 为每个后续操作增加延迟。

    5.2K40

    AppengineJS:用JavaScript来搞GAE

    尽管Google没有为他自家的App Engine平台开发JavaScript SDK,但GAE Python SDK的新端口AppengineJS促进了GAE应用程序的构建,这个新家伙使用了所有Web...该端口在App Engine Java之上使用Rhino(JavaScript的JVM实现),但是该API基于App Engine Python,因为它是JS之类的脚本语言。...App Engine Python的文档应该高效地用被应用于JavaScript SDK。...AppengineJS的官方文档解释说,他们使用JavaScript编码约定: 像“thisisa_name”这样的Python的命名方式被转换为像“thisIsAName”一样的 JavaScript...此外,所有delete()函数都被重命名为.remove()函数,以避免与delete关键字发生冲突(他们贴心的提供了一个叫做DELETE()的函数,但不建议使用,因为它将来可能会被弃用)。

    1.4K80
    领券