gpt4 book ai didi

javascript - JS,向函数添加参数

转载 作者:行者123 更新时间:2023-12-02 18:29:54 25 4
gpt4 key购买 nike

我想做这样的事情:

var f = function(){
var args = arguments;
args.push(this._caller);
this._base(args);
};

f._caller = someObject;
f._base = function(x,y,z){ alert(x+':'+y+':'+z);};

f(y,z);

基本上 - 我想给函数一些内部参数,但函数仍然应该使用它的参数来调用,并且用户在调用这个函数时不应该知道这个参数。

问题是,在函数体中“this”意味着“Window”,而不是需要的函数。

那么我该怎么做呢?我可以这样做吗?

最佳答案

  1. this 不会是函数本身,而是调用函数的上下文。如果您命名了函数,则可以访问该函数的属性(var f 不会设置名称)。

    var f = function fn() {
    var _caller = fn._caller;
    var _base = fn._base;
    // ...
    };
  2. 方法 arguments.push() 不存在,因为 arguments 实际上不是 Array。不过,您可以使用 .slice() 从它创建一个 Array :

    var args = Array.prototype.slice.call(argument, 0);
    args.push(_caller);
  3. 要设置上下文 (this) 并传递参数的Array,请使用 Function#apply .

    return _base.apply(this, args);

关于javascript - JS,向函数添加参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17907480/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com