问题标签 [function-binding]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
257 浏览

javascript - 解释 bindbind() 函数

有人可以解释这个功能吗?

我理解它产生的结果:

但不了解创建此功能的过程,我的意思是部分bind(Function.prototype.bind)

0 投票
2 回答
1698 浏览

javascript - 为什么我不能在打开开发者工具的情况下直接在 IE9 上绑定 console.log?

在 IE9 中打开开发人员工具后,此代码有效:

但是如果我输入

然后我得到这个:

SCRIPT438:对象不支持属性或方法“绑定”

为什么 ?

这是已知的 IE 错误还是正常行为?

它会影响其他功能吗(我对它window.alert也是原生的没有问题)?

0 投票
0 回答
480 浏览

javascript - 将“地图”绑定到 OverlayView 时 MVCObject 不一致 - Google Maps API

我正在使用 Google 地图中的自定义叠加层,尤其是 OverlayView 类。经过很多麻烦和调试后,我得出结论,将 OverlayView(从 MVCObject 派生)的“地图”属性绑定到其他 MVC 对象时可能存在不一致。

我不确定这是一个错误还是只是我错过了一些重要的东西。然而,我设置了一个测试场景,与 MVCObject 相比,OverlayView 产生了奇怪的结果。测试场景如下:

根据我在 bindTo 调用后的理解,当任一对象发生更改时,“map”属性值应该在两个对象之间传播。然而,对此进行测试会产生“Map is null: false”,这与假设相矛盾。

出于某种原因,它仅在通过 setTimeout 延迟调用时才有效,但让我认为它是 OverlayView 中的一个错误的方向是,将测试代码中的 OverlayView 类型更改为常规 MVCObject 会产生正确的答案。似乎它只是“地图”属性,因为更改属性名称也可以使其工作。

这里有什么想法吗?已经在多个浏览器中测试过,结果是一样的。

0 投票
3 回答
371 浏览

c++ - 如何将两个参数的函数“转换”为一个参数的函数?

在matlab中,可以这样写:

如果我有一个需要单参数函数的函数,我可以执行上述操作。我怎样才能在 C/C++ 中做到这一点?

我有一个库函数(来自 CGAL 库),它期望作为参数的函数本身只有一个参数。理想情况下,我有一个类 ( SphericalHarmonics),我希望有一个成员函数,它接受一个参数。所以我有:

(请注意,这FT是一种类似于double)但当然当我尝试

this也被当做参数,我的distFunction函数是两个参数的函数,会抛出错误。

请注意,这可以通过全局变量来解决,即

然而,这真的很不理想。我想要一种没有全局变量的方法,因为能够拥有一个易于与 CGAL 库集成的类函数会好得多。

提前致谢!

[更新]

@Andy-Prowl:我已经尝试过您的std::bind解决lambda方案,但在参数数量方面似乎仍然遇到错误。

当,在main,我使用代码:

我得到错误:

[更新]

我现在很清楚我需要一个可以转换为函数指针的函数(即surface需要一个函数指针参数)。这排除了该std::bind选项。此外,如果 lambda 捕获变量(无捕获与捕获 lambda),它似乎无法转换为函数指针。所以我认为 Andy-Prowl 下面的答案通常是这个问题的正确答案,尽管我需要找到不同的解决方法。

0 投票
1 回答
370 浏览

javascript - binding resize function to images upon loading

I've been working with twitter bootstrap carousel, and I've written my own image resize function so that images are proportionally resized to the window size. I've also implemented the lazy load for images so that images are only loaded when its the active current slide. So my problem is, how do I bind my resize function to each carousel item when it becomes active?

HTML:

My image resize JS:

I've tried this, but the method wan'st even invoked

I've also tried this, but it broke the carousel as item2,3 are not shown after becoming active item, their width is set to 0

0 投票
0 回答
264 浏览

c++ - 在对象池实现中构造对象的自定义函数?

我正在编写一个自定义对象池,因为我找不到任何符合我的应用程序特定要求的对象池。对象池本身遵循“如果存在则从列表中获取预分配对象,否则创建一个新对象并添加到预分配对象列表”的简单模型。到目前为止一切顺利:在多线程的情况下锁定,返回对象构造/销毁时的 RAII,并且它已被模板化,以便我可以将任何对象类型指定为“池”。

现在我正在完成我的最后一项任务。我希望能够允许客户端指定一个自定义函数来使用它构造一个在请求时返回的新对象,而不是默认的构造函数new _obj()。推理以便可以使用非默认构造函数,也许有人可能想要预先绑定一些参数并将该有界构造函数用作分配方法。一个简化的使用示例:

我一直在研究allocator,这似乎比对象构造更适合与低级内存相关的性能。我也考虑boost::bindboost::functionor functor,这似乎更适合我试图解决的问题。

我敢肯定这已经完成了 - 那么,典型的方法是什么?

0 投票
1 回答
1209 浏览

javascript - 使用带有动态函数绑定的测试间谍的好方法

我使用$.proxy(this, 'methodName')对象的方法作为 DOM 事件的事件处理程序。

在测试方面,我想使用 JasminespyOn来监控回调是否被触发。但是,当我开始监视该方法时,侦听器已附加到我的 Object 的构造函数中,为时已晚,并且原始的、未监视的函数已被$.proxy.

有什么好的方法来解决这个问题?我考虑过的一件事是直接监视原型的方法,但我担心这可能对每个独立于其他测试的测试产生影响。另一种方法是改变我在代码中附加监听器的方式,但这似乎是把婴儿和洗澡水一起扔了。

0 投票
1 回答
1904 浏览

templates - std::bind 与模板成员函数

我有一个奇怪的问题,我无法绑定这个模板成员函数,所有这些代码都编译:http: //ideone.com/wl5hS8

这是一个简单的代码:我有一个ExecutionList应该在std::vector. 我现在可以通过调用来添加函数ExecutionList::addFunctor。但是在那里,我无法绑定到template<typename T> void Functor::calculate(T * t). 我在问我为什么,这里缺少什么,编译器无法以某种方式推断出我写的内容

*错误:*

编码:

0 投票
4 回答
1861 浏览

javascript - Function.bind.bind(Function.call) 如何解开?

我们的代码库中有这一行:

我正在努力解决。大概,它不咖喱。我该如何解决?

我想这是一个Function.bind自己的版本this绑定到Function.call. 对我帮助不够。而且我还没有找到任何用途,所以我什至不确定你是否将它称为独立的或需要将其称为“作为方法”,只是,你知道,先绑定它。

0 投票
0 回答
117 浏览

c++ - 如何将函数绑定器归为一类?

我试图了解函数绑定器是如何工作的。到目前为止,我有一个用于 0-2 参数的小活页夹,效果很好,但我不知道如何将它放入一个类(例如函数<>)中,以将其存储在一个集合中。

通常我会使用类型擦除,但我就是想不通。我需要从基类继承并使 operator()(...)-template 虚拟,这是不可能的。有人知道他们是如何在标准库中解决它的吗?