相关疑难解决方法(0)

如何在JavaScript函数调用中预先设置参数?(部分功能应用)

我正在尝试编写一个JavaScript函数,它将返回其第一个参数(函数),其所有其余参数作为该函数的预设参数.

所以:

function out(a, b) {
    document.write(a + " " + b);
}

function setter(...) {...}

setter(out, "hello")("world");
setter(out, "hello", "world")();

会两次输出"你好世界".对于setter的一些实现

我在第一次尝试时遇到了操纵arguments数组的问题,但似乎有更好的方法来做到这一点.

javascript functional-programming

53
推荐指数
1
解决办法
2万
查看次数

关于JavaScript的切片和拼接方法的问题

我遇到了以下代码:

var f = function () {
    var args = Array.prototype.slice.call(arguments).splice(1);

    // some more code 
};
Run Code Online (Sandbox Code Playgroud)

基本上,结果args是一个数组,它是arguments没有第一个元素的副本.

但我不明白究竟是为什么farguments(其是保持该函数的输入参数成阵列状的对象的对象)对象被传递到slice方法,以及如何slice(1)被移除第一元件(定位在索引0) .

有人可以帮我解释一下吗?

PS代码来自此部分应用程序功能

javascript arrays arguments slice

23
推荐指数
1
解决办法
2万
查看次数

单击元素时如何执行外部函数?

我试图在点击DOM元素时执行外部函数,而不将其包装在另一个函数中.

假设我有一个名为的函数sayHello(),如下所示:

function sayHello(){
  alert("hello");
};
Run Code Online (Sandbox Code Playgroud)

要在点击时执行它,我目前必须这样做:

$("#myelement").click(function(){
  sayHello();
});
Run Code Online (Sandbox Code Playgroud)

注意我被迫将单个函数调用包装在另一个函数中.我想要做的就是这样

$("#myelement").click(sayHello());
Run Code Online (Sandbox Code Playgroud)

除此之外根本不起作用.我可以避免以任何方式将单个函数调用包装在另一个函数中吗?谢谢!

.

附加信息:当我需要将参数传递给函数时,我将如何实现相同的功能?

..

附加信息:像Chris Brandsma和Jani Hartikainen所指出的那样,应该能够使用bind函数将参数传递给函数,而不必将其包装在另一个匿名函数中:

$("#myelement").bind("click", "john", sayHello);
Run Code Online (Sandbox Code Playgroud)

sayHello()现在接受一个新的参数,因为这样的:

function sayHello(name){
  alert("Hello, "+name);
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,这似乎不起作用......任何想法?事件/绑定文档位于此处 谢谢!

javascript jquery event-handling

12
推荐指数
2
解决办法
2万
查看次数