Javascript JS,在函数中添加一个参数

Javascript JS,在函数中添加一个参数,javascript,Javascript,我想这样做: 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); 基本上-我想给函数一些内部参数,但仍然应该用它的参数调用函数,用户在调用函数时不应该知道这些参数 问题是,在函数体

我想这样做:

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”,而不是需要的函数

那我该怎么做呢?我能做到吗

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

  • 方法
    arguments.push()
    不存在,因为
    arguments
    实际上不是
    数组。但是,您可以使用以下方法从中创建
    数组

  • 要设置上下文(
    this
    )并传递参数数组,请使用


  • . 还要注意的是,
    arguments
    不是一个真正的数组,你不能
    push
    进入它。这不是我使用的“working”的原始示例,它更大,所以我做了这样的更改。感谢您提供的信息,will Know,function.apply也不会有帮助,因为您仍然需要传递这些参数,或者用户应该清楚地写下f.apply(f,…),而我只需要f(…)。更新的代码清楚地显示了我need@DCoder:您可以
    [].push.call(参数,f.\u调用者)
    ,因此除了函数#apply?@AndrewYukhymchak之外没有其他方法,或者如果您想指定
    的值。但是
    .call()
    会将
    数组作为单个参数的值传递。。。这不是我想听到的答案。泰。关闭
    
    var f = function fn() {
        var _caller = fn._caller;
        var _base = fn._base;
        // ...
    };
    
    var args = Array.prototype.slice.call(argument, 0);
    args.push(_caller);
    
    return _base.apply(this, args);