重庆熊猫 Loading

ExtJS类成员-辅助函数功能

更新记录
2022年7月6日 发布。
2022年7月2日 从笔记迁移到博客。

ExtJS教程汇总:https://www.cnblogs.com/cqpanda/p/16328016.html

合并对象

Ext.merge ( destination, object ) : Object

注意:同名的Key会被后面的值替代
实例:

var obj1 = {
            "Name":"Panda",
            "Code": 66666,
            "Website": "Panda666.com"
        };

        var obj2 = {
            "Name":"Dog",
            "Code": 888888,
            "Website": "222Dog.com"
        };
    
        var result = Ext.merge({},obj1,obj2);
        console.log(result);
        //{Name: "Dog", Code: 888888, Website: "222Dog.com"}

复制配置项到对象中

Ext.applyIf ( object, config ) : Object 

注意:如果object已经有和config中相同的配置项,则不进行复制
实例:

var result1 = Ext.applyIf({ a: 1 }, { a: 2 });
console.log(result1);
//obj.a === 1

var result2 = Ext.applyIf({  }, { a: 2 });
console.log(result2);
//obj.a === 2

复制配置项到对象中(带默认值)

Ext.apply ( object, config, [defaults] ) : Object 

说明:
如果config中存在和defaults中相同的配置项
则保留config中的配置项,否则保留defaults中的配置项
注意:defaults参数是可选的
实例:

var result1 = Ext.apply({}, { a: 1 }, { a: 2 });
console.log(result1);
//obj.a === 1

var result2 = Ext.apply({}, {  }, { a: 2 });
console.log(result2);
//obj.a === 2

迭代可迭代类型

Ext.iterate ( object, fn, [scope] ) 

注意:只可以迭代数组或对象类型
实例:迭代数组

//迭代数组
var testArray = [1,2,3,4];
Ext.iterate(testArray,function(value, index, self){
    console.log(value);
    console.log(index);
    console.log(self);
});

实例:迭代对象

//迭代对象
var testObject = {
    "Panda": 666,
    "Dog": 222,
    "Monkey": 888
};
Ext.iterate(testObject, function(value, key, self){
    console.log(value);
    console.log(key);
    console.log(self);
});

遍历可迭代类型

Ext.each ( array, fn, [scope], [reverse] ) : Boolean/Number 

实例:

var testArray = [1,2,3,4,5,6];

//测试数组
Ext.each(testArray, function(item, index, array){
    console.log(item);
    console.log(index);
    console.log(array);
});

绑定函数的参数和作用域

类似JavaScript中的bind

bind ( fn, [scope], [args], [appendArgs] ) : Function

实例:

function foo (a, b, c) {
    console.log(a, b, c);
}

var nativeFn = foo.bind(this, 1, 2);
nativeFn(3); //1 2 3

调用函数

Ext.callback(callback, [scope],[args], [delay], [caller],[defaultScope] ):

实例:

var myFunc = this.myFunc;
Ext.callback('myFunc', this, [arg1, arg2]);
Ext.callback(myFunc, this, [arg1, arg2]);

对象克隆

Ext.clone ( item, [cloneDom] ) : Object 

实例:

var obj1 = { "Name":"Panda666", "Code":666 };
var obj2 = Ext.clone(obj1); 
console.log(obj2); //{Name: "Panda666", Code: 666}
console.log(obj2 == obj1); //false

复制指定的属性到对象中

Ext.copy ( dest, source, names, [usePrototypeKeys] ) : Object 

实例:

var obj1 = { a: 1, b: 2, c: 3 };
var obj2 = Ext.copy({}, obj1, 'a,c');

复制指定的属性到对象中(如果目标中不存在)

Ext.copyIf ( destination, source, names ) : Object 

实例:

var obj1 = { a: 1, b: 2, c: 3 };
var obj2 = Ext.copyIf({}, obj1, 'a,c');
// obj2 = { a: 1, c: 3 };
var obj3 = Ext.copyIf({a: 10, c: 30}, obj1, 'a,c');
// obj3 = { a: 10, c: 30 };

获得当前时间的UNIX时间戳

Ext.now() : Number

实例:

console.log(Ext.now()); //1610155384773

可迭代类型转为数组

Ext.toArray ( iterable, [start], [end] ) : Array 

注意:这里的可迭代类型指包含数字索引和长度属性
注意;Ext.toArray方法是Ext.Array.toArray的快捷别名方法
实例:

console.log(Ext.toArray({Name:"Panda"})); //[]
console.log(Ext.toArray({0:1,1:2,length:2})); //[1, 2]

URL字符串追加内容

Ext.urlAppend ( url, string ) : String 

实例:

var url = 'panda666.com'
var appendString = 'code=666#flag=value1';
var result = Ext.urlAppend( url, appendString);
console.log(result); //panda666.com?code=666#flag=value1

如果不存在值则返回默认值

Ext.valueFrom ( value, defaultValue, [allowBlank] ) : Object 

实例:

console.log(Ext.valueFrom({},{name:'panda666'})); //{}
console.log(Ext.valueFrom(null,'panda666')); //panda666
console.log(Ext.valueFrom(undefined,'panda666')); //panda666
posted @ 2022-07-06 08:42  重庆熊猫  阅读(259)  评论(2编辑  收藏  举报