`
夏莹_合肥
  • 浏览: 180318 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

为函数绑定执行对象

阅读更多

我在写setTimeout函数的时候遇到了这样一个问题:setTimeout(fn, 3000),我希望函数fn在执行的期间可以指定一个当前的this对象。解决的方法如下

Function.prototype.getBindToFn = function(currentThis) {
       
        var t = this;
       
        return function() {
            return t.apply(currentThis, arguments);
        };
    }
 


所以代码可以改写为

setTimeout(fn.getBindToFn(currentThis), 3000)

问题解决。

分享到:
评论

相关推荐

    APIHook、InlineHook库,使用C++11编写,可将回调函数绑定到类成员函数

    在本库中,`corehook.hpp`可能包含了APIHook的核心实现,`opcode.hpp`可能涉及到了汇编级别的操作,而`corefunctor.hpp`可能是关于如何处理回调函数的封装,尤其是与类成员函数绑定的部分。 在`detail`目录下,通常...

    构造函数不能声明为虚函数,析构函数可以声明为虚函数

    然而在构造函数执行时,对象的动态类型尚未完全确定,因此无法进行动态绑定。 综上所述,构造函数不能声明为虚函数是因为它们与对象构造过程的本质相悖。在构造阶段,对象的类型和状态尚不确定,使得动态绑定变得不...

    javascript强制函数自动执行.pdf

    函数声明会在当前作用域中创建一个全局变量,并将该变量绑定到函数对象上。 **示例:** ```javascript function myTest() { window.alert("hello"); } ``` 在这个例子中,`myTest`是一个通过函数声明定义的函数...

    易语言面向对象之绑定类成员

    通过`变量绑定`和`函数绑定`,我们可以直接通过对象调用类的成员,实现了对象和类成员的紧密关联。 总结: 易语言的面向对象特性使其成为一个强大的编程工具,特别是对于初学者来说,其中文语法降低了学习曲线。...

    微信小程序 页面跳转事件绑定的实例详解

    事件可以绑定在组件上,当达到触发事件,就会执行逻辑层中对应的事件处理函数。 事件对象可以携带额外信息,如 id, dataset, touches。 在组件中绑定一个事件处理函数。 如bindtap,当用户点击该组件的时候会在...

    函数之间调用同一个对象方法

    在例子中,`球`对象被赋予了一个帧事件监听器,这意味着每当游戏引擎处理一帧时,都会触发绑定的函数(即`函数2`)。事件监听器通过`addEventListener`方法添加到对象上,而当不再需要时,可以通过`...

    JavaScript中函数对象调用模式总结

    这种调用方式会创建一个新的执行上下文,并将当前作用域链与该函数的活动对象关联。 2. **方法调用模式**:当函数作为对象的一个属性被调用时,如 `obj.func()`,`this` 关键字会指向调用该函数的对象(在非严格...

    面向对象的虚函数使用总结

    当通过基类指针或引用来调用这个函数时,实际执行的将是该指针或引用所指向的对象所属类的版本。例如: ```cpp class A { public: virtual void f1(); }; class B : public A { public: void f1(); }; ``` 在...

    为什么构造函数不能是虚函数

    当使用基类指针或引用调用虚函数时,实际执行的是该指针或引用指向的对象所属类的函数版本。这种方式支持动态绑定,使得程序具有更好的灵活性和可扩展性。 #### 四、构造函数不能是虚函数的原因 构造函数不能作为虚...

    c++类成员函数作为回调函数

    静态成员函数不与任何对象实例绑定,因此它们可以直接作为回调函数。但是,由于它们无法访问类的非静态成员,这种方案适用于那些不需要访问对象状态的情况。 2. **函数指针和std::function** C++标准库提供了`std...

    把多个JavaScript函数绑定到onload事件处理函数上的方法

    为了使网页在加载完成后执行一些特定的操作,常常会使用到window对象的onload事件。onload事件会在页面的所有资源(包括图片、脚本文件等)完全加载完毕后触发。当开发者需要绑定多个函数到onload事件上时,通常会...

    对象引用指针调用虚函数实例

    多态性是面向对象编程的重要概念,它指的是一个接口可以有多种不同的实现,根据对象的实际类型动态地执行相应的代码。当我们谈论“对象引用指针调用虚函数”时,我们指的是通过基类的指针或引用来调用派生类中的虚...

    ES6中javascript实现函数绑定及类的事件绑定功能详解

    函数绑定是一种把函数中的this值固定为特定对象的技术,它减少了在JavaScript中由于this上下文不正确导致的错误。在ES6中,箭头函数自动绑定this,但是并非所有场景都适合使用箭头函数,因此ES7提案了一个函数绑定...

    JavaScript绑定大事监听函数的通用方法_.docx

    JavaScript 绑定大事监听函数的通用方法 本文主要介绍了 JavaScript 绑定大事监听函数的通用方法,讨论了几种常用的绑定方法,并且分析了这些方法的优缺。首先介绍了三种常用的绑定方法:传统绑定、W3C 绑定方法和 ...

    C++有子对象的派生类的构造函数

    1. 默认构造函数:如果子对象没有显式提供构造函数,编译器会为它提供一个默认构造函数,用于初始化数据成员为默认值。 2. 显式构造函数调用:可以使用成员初始化列表(member initialization list)来指定子对象的...

    JavaScript高级-this绑定规则+箭头函数

    `call()`和`apply()`会立即执行函数,而`bind()`则返回一个新函数,保持`this`的绑定。 ```javascript function foo(name) { console.log(this, name); } let obj = {}; foo.call(obj, "John"); // 输出obj...

    JS 四种函数调用模式

    使用 `new` 关键字调用函数时,会创建一个新的对象实例,并将这个新对象绑定到 `this`。构造函数主要用于初始化新创建的对象。 ```javascript function Person(name) { this.name = name; } let person = new ...

    在每个对象上,这个事件处理函数只会被执行一次。其他规则与bind()函数相同。这个事件处理函数会接收到一个事件对象,可以通过它来阻止(浏览器)默认的行为。如果既想取消默认的行为,又想阻止事件起泡,这个事件处理函数必须返回false。

    这个事件处理函数的特点是它在每个对象上只会执行一次,类似于JavaScript的`addEventListener`方法的第三个参数为`once`时的效果。此外,它还提及了如何阻止浏览器的默认行为以及如何控制事件的冒泡。 1. **事件...

    表达式解析和执行,支持参数和函数

    本文将深入探讨标题和描述中提到的“表达式解析和执行,支持参数和函数”的概念,以及如何在C#环境中实现。 **表达式解析** 表达式解析是指将人类可读的数学或逻辑表达式转换为计算机可以理解的形式。在C#中,这...

    函数对象.doc_cplus_plus

    C++标准库提供了诸如`std::bind`和函数对象适配器(如`std::mem_fun`、`std::ptr_fun`等),这些工具可以帮助将成员函数或非成员函数转换为函数对象,进一步增强函数对象的使用范围。 7. 对比函数指针: 尽管函数...

Global site tag (gtag.js) - Google Analytics