javascript - JS,向函数添加参数

标签 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);

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

问题是,在函数体中“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/

相关文章:

javascript - 如何将 Prop 传递给样式化的组件

javascript - 了解 API 转换和内部 API

javascript - ng-click 后 AngularJS 重定向

javascript - 当我将 window.onload 设置为两个不同的函数时,它仅运行一个函数

javascript - 以编程方式选择操作表会引发错误

javascript - Mootools - 如何修复初始化和 ajax 请求内的变量范围

javascript - 90度的弧度为45

javascript - IF 语句在 jquery 上不起作用

php - 从php获取外部js文件中的变量

javascript - Javascript拖放事件-错误捕获