Ext.Function

Alternate names

Ext.util.Functions

Files

处理回调函数的常用静态方法的集合。

Defined By

Methods

Ext.Function
( Object/Function object, String methodName ) : Function

object提供的方法属性名称为methodName的方法创建一个别名。 注意,执行的作用域仍将被绑定到所提供的“对象”本身。

Parameters

Returns

Ext.Function
( Function fn, Object scope, Array args, Boolean/Number appendArgs ) : Function
根据指定函数 fn 创建一个代理函数,更改 this 作用域为传入的作用域, 可以选择重写调用的参数。(默认为该函数的参数列表) Ext.bind是Ext.Function.bind的别名 ...

根据指定函数 fn 创建一个代理函数,更改 this 作用域为传入的作用域, 可以选择重写调用的参数。(默认为该函数的参数列表)

Ext.bindExt.Function.bind的别名

Parameters

  • fn : Function

    需要被代理的原始函数。

  • scope : Object

    (可选) 该函数执行的作用域(this引用)。 如果省略,默认指向默认的全局环境对象(通常是window)。

  • args : Array

    (可选) 覆盖原函数的参数列表(默认为该函数的参数列表)。

  • appendArgs : Boolean/Number

    (可选) 如果该参数为true,将参数加载到该函数的后面, 如果该参数为数字类型,则将参数将插入到所指定的位置。

Returns

Ext.Function
( Function method ) : Function

为当前提供的方法创建一个"克隆"。 返回的方法将调用传递所有的参数和"this"指针沿给定的方法,并返回其结果。

Parameters

Returns

Ext.Function
( Function fn, Number buffer, Object scope, Array args ) : Function
创建一个缓冲函数,可选绑定范围,在调用时, 根据配置的毫秒数缓冲执行传递的函数。 ...

创建一个缓冲函数,可选绑定范围,在调用时, 根据配置的毫秒数缓冲执行传递的函数。 如果在此期间该函数被重复调用,则第一次调用将被取消, 重新开始计算缓冲时间。

Parameters

  • fn : Function

    需要被缓冲的原始函数。

  • buffer : Number

    缓冲函数调用执行的时间,单位是毫秒。

  • scope : Object

    (可选) 该对象将作为代理函数执行的作用域(this引用)。 如果省略,默认为调用者指定的作用域。

  • args : Array

    (可选) 覆盖该次调用的参数列表。(默认为该函数的参数列表)。

Returns

  • Function

    一个函数,在指定的时间缓冲之后调用传递的函数。

Ext.Function
( Function fn, Number delay, Object scope, Array args, Boolean/Number appendArgs ) : Function

创建一个委派对象(就是回调),调用时,在一个特定的延迟后执行。

Parameters

  • fn : Function

    当返回的函数调用时,该函数将在一个延迟后被调用。 可选地,可以指定一个更换(或更多)的参数列表。

  • delay : Number

    每当调用时推迟执行的毫秒数。

  • scope : Object

    (可选) 函数在执行时所使用的作用域(this引用)。

  • args : Array

    (可选) 覆盖原函数的参数列表(默认为该函数的参数列表)。

  • appendArgs : Boolean/Number

    (可选) 如果该参数为true,将参数加载到该函数的后面, 如果该参数为数字类型,则将参数将插入到所指定的位置。

Returns

  • Function

    一个函数,调用时,在指定的延迟之后执行原函数。

Ext.Function
( Function origFn, Function newFn, Object scope, Object returnValue ) : Function
创建一个拦截函数。传递的函数在原函数之前被调用。如果拦截函数返回false, 则原函数不会被调用。在返回函数中,将返回原函数的返回值。 ...

创建一个拦截函数。传递的函数在原函数之前被调用。如果拦截函数返回false, 则原函数不会被调用。在返回函数中,将返回原函数的返回值。 拦截函数被调用时会被传入原函数的参数。例如:

var sayHi = function(name){
    alert('Hi, ' + name);
}

sayHi('Fred'); // 提示 "Hi, Fred"

// 不修改原函数的前提下
// 创建新的验证函数:
var sayHiToFriend = Ext.Function.createInterceptor(sayHi, function(name){
    return name == 'Brian';
});

sayHiToFriend('Fred');  // 没提示
sayHiToFriend('Brian'); // 提示 "Hi, Brian"

Parameters

  • origFn : Function

    原始函数

  • newFn : Function

    新的拦截函数

  • scope : Object

    (可选) 传递的函数执行的作用域(this引用)。 如果省略,默认指向被调用的原函数作用域或window。

  • returnValue : Object

    (可选)返回的值,如果传递的函数返回false(默认为 null)。

Returns

Ext.Function
( Function originalFn, Function newFn, Object scope ) : Function

创建一个组合函数,调用次序为:原函数 + 参数中的函数。 该函数返回了原函数执行的结果(也就是返回了原函数的返回值)。 在参数中传递的函数,它的参数也是原函数的参数。 用法示例:

var sayHi = function(name){
    alert('Hi, ' + name);
}

sayHi('Fred'); // 提示 "Hi, Fred"

var sayGoodbye = Ext.Function.createSequence(sayHi, function(name){
    alert('Bye, ' + name);
});

sayGoodbye('Fred'); // 显示两个提示

Parameters

  • originalFn : Function

    原始函数。

  • newFn : Function

    新的组合函数

  • scope : Object

    (可选) 传递的函数执行的作用域(this引用)。 如果省略,默认指向默认的全局环境对象(通常是window)。

Returns

Ext.Function
( Function fn, Number interval, Object scope ) : Function
创建一个指定函数的减速代理, 当减速函数被反复快速回调时, 只有在上次调用完成的指定间间隔之后才会被调用。 ...

创建一个指定函数的减速代理, 当减速函数被反复快速回调时, 只有在上次调用完成的指定间间隔之后才会被调用。

对于包装可被反复调用的函数,如鼠标移动事件的情况下的处理程序时, 处理是极其昂贵的,这是非常有用的。

Parameters

  • fn : Function

    要在一个固定的时间间隔执行的函数。

  • interval : Number

    减速函数执行的时间间隔毫秒为单位

  • scope : Object

    (可选) 传递的函数执行的作用域(this引用)。 如果省略,默认为调用者指定的作用域。

Returns

  • Function

    一个函数,在指定的时间间隔调用传递函数。

Ext.Function
( Function fn, Number millis, Object scope, Array args, Boolean/Number appendArgs ) : Number
延迟调用该函数。你可以加入一个作用域的参数,例如: var sayHi = function(name){ alert('Hi, ' + name); } // 即刻执行的: sayHi('Fred'); // 两秒过后...

延迟调用该函数。你可以加入一个作用域的参数,例如:

var sayHi = function(name){
    alert('Hi, ' + name);
}

// 即刻执行的:
sayHi('Fred');

// 两秒过后执行的:
Ext.Function.defer(sayHi, 2000, this, ['Fred']);

// 有时候加上一个匿名
// 函数也是很方便的:
Ext.Function.defer(function(){
    alert('Anonymous');
}, 100);

Ext.deferExt.Function.defer的别名

Parameters

  • fn : Function

    要延迟执行的函数。

  • millis : Number

    延迟时间,以毫秒为单位 (如果小于或等于 0 函数则立即执行)

  • scope : Object

    (可选) 该函数执行的作用域(this引用)。 如果省略,默认指向window。

  • args : Array

    (可选) 覆盖原函数的参数列表 (默认为该函数的参数列表)

  • appendArgs : Boolean/Number

    (可选) 如果该参数为true,将参数加载到该函数的后面, 如果该参数为数字类型,则将参数将插入到所指定的位置。

Returns

  • Number

    可被clearTimeout所使用的timeout id

Ext.Function
( Function setter ) : Function

整个框架的一个很常用的方法。 它作为另一种方法的包装,最初接受2个参数 namevalue。 被包装的函数可以"灵活"的对值进行设置为其他值:

  • namevalue 作为2个参数
  • 一个单一的对象参数与多个键-值对

示例:

var setValue = Ext.Function.flexSetter(function(name, value) {
    this[name] = value;
});

// 之后
// 设置单个名称-值
setValue('name1', 'value1');

// 设置多个名称-值对
setValue({
    name1: 'value1',
    name2: 'value2',
    name3: 'value3'
});

Parameters

Returns

Ext.Function
( Object object, String methodName, Function fn, [Object scope] ) : Function

将行为添加到现有的方法是在该函数的原始行为之后执行。 例如:

var soup = {
    contents: [],
    add: function(ingredient) {
        this.contents.push(ingredient);
    }
};
Ext.Function.interceptAfter(soup, "add", function(ingredient){
    // 总是添加少量额外的盐
    this.contents.push("salt");
});
soup.add("water");
soup.add("onions");
soup.contents; // 将包含:水、盐、葱、盐

Parameters

  • object : Object

    目标对象

  • methodName : String

    要重写的方法名称

  • fn : Function

    新的行为函数。 它将与原始方法相同的参数调用。 此函数的返回值将成为新方法的返回值。

  • scope : Object (optional)

    要执行拦截器函数的作用域。默认为当前对象。

Returns

Ext.Function
( Object object, String methodName, Function fn, [Object scope] ) : Function

将行为添加到现有的方法是在该函数的原始行为之前执行。 例如:

var soup = {
    contents: [],
    add: function(ingredient) {
        this.contents.push(ingredient);
    }
};
Ext.Function.interceptBefore(soup, "add", function(ingredient){
    if (!this.contents.length && ingredient !== "water") {
        // 总是首先添加水
        this.contents.push("water");
    }
});
soup.add("onions");
soup.add("salt");
soup.contents; // 将包含:水、葱、盐

Parameters

  • object : Object

    目标对象

  • methodName : String

    要重写的方法名称

  • fn : Function

    新的行为函数。 它将与原始方法相同的参数调用。 此函数的返回值将成为新方法的返回值。

  • scope : Object (optional)

    要执行拦截器函数的作用域。默认为当前对象。

Returns

Ext.Function
( Function fn, Array args, Object scope ) : Function

从提供'fn'创建一个新的函数,其中的参数预先设置到 'args'。 新的参数传递到新创建的回调函数中,调用时追加到预先设定的参数之后。 创建的回调时,这是特别有用的。

示例:

var originalFunction = function(){
    alert(Ext.Array.from(arguments).join(' '));
};

var callback = Ext.Function.pass(originalFunction, ['Hello', 'World']);

callback(); // 执行结果为 'Hello World'
callback('by Me'); // 执行结果为 'Hello World by Me'

Ext.passExt.Function.pass的别名

Parameters

  • fn : Function

    原始函数

  • args : Array

    要传递给新的回调函数的参数

  • scope : Object

    (可选) 该函数执行的作用域(this引用)。

Returns