Core
优质
小牛编辑
126浏览
2023-12-01
Type: Core
核心包含在MooTools的常用的功能。
Function:typeof
返回对象的类型。
语法:
typeof(obj);
参数:
- obj - 要检查的对象(object)。
返回:
- 'element' - (string) 如果对象是DOM元素的节点。
- 'elements' - (string) 如果对象是元素的一个实例。
- 'textnode' - (string) 如果对象是一个DOM文本节点。
- 'whitespace' - (string) 如果对象是一个DOM空白节点。
- 'arguments' - (string) 如果对象是一个arguments对象。
- 'array' - (string) 如果对象是一个数组。
- 'object' - (string) 如果对象是一个对象。
- 'string' - (string) 如果对象是一个字符串。
- 'number' - (string) 如果对象是一个数字。
- 'date' - (string) 如果对象是一个日期。
- 'boolean' - (string) 如果对象是一个布尔值。
- 'function' - (string) 如果对象是一个函数。
- 'regexp' - (string) 如果对象是一个正则表达式。
- 'class' - (string) 如果对象是一个类(创建新类或另一个类的扩展)。
- 'collection' - (string) 如果对象是一个本地的HTML元素的集合,如用childNodes或用getElementsByTagName到得的元素集。
- 'window' - (string) 如果对象是window对象。
- 'document' - (string) 如果对象是document对象。
- 'domevent' - (string) 如果对象是一个事件。
- 'null' - (string) 如果对象为 undefined, null, NaN 或其它。
例如:
var myString = 'hello'; typeOf(myString); // 返回 "string"
注意:
这种方法相当于MooTools 1.2的$type,除了undefined,null值返回字符串'null',而不是false。
Function: instanceOf
检查一个对象是否为一个特定类型的实例。
语法:
instanceOf(item, object)
参数:
- 1.item - (mixed) 对象实例。
- 2.object - (mixed) 目标类型。
返回:
- (boolean) item是否为object的一个实例
例子:
var foo = []; instanceOf(foo, Array) // 返回 true instanceOf(foo, String) // 返回 falsevar myClass = new Class(); var bar = new myClass(); instanceOf(bar, myClass) // 返回 true
类型
MooTools的延伸原生类型,如字符串,数组或数字,使他们更加有效。
MooTools的使用的类型有:
- String
- Array
- Number
- Function
- RegExp
- Date
- Boolean
MooTools自定义的类型有:
- Element
- Elements
- Event
Type method: implement
该方法实现一个类型的原型方法。
语法:
myType.implement(name, method);或 myType.implement(methods);
参数:
- name - (string) 方法名.
- method - (function) 方法函数.
或
- methods - (object) 一(键:值)对象 , 关键是方法名,值是方法函数。
返回:
- (object) 该类型.
例子:
Array.implement('limitTop', function(top){ for (var i = 0, l = this.length; i < l; i++){ if (this[i] > top) this[i] = top; } return this; });[1, 2, 3, 4, 5, 6].limitTop(4); // 返回 [1, 2, 3, 4, 4, 4]
也可以传递一个对象:
String.implement({ repeat: function(times){ var string = ''; while (times--) string += this; return string; }, ftw: function(){ return this + ' FTW!'; } });'moo! '.repeat(3); // 返回 "moo! moo! moo! " 'MooTools'.ftw(); // 返回 "MooTools FTW!" ('MooTools'.ftw() + ' ').repeat(2); // 返回 "MooTools FTW! MooTools FTW! "
Type method: extend
对一个类型增加一个或多个方法。
语法:
myType.extend(name, method); 或 myType.extend(methods);
参数:
- name - (string) 方法名。
- method - (function) 方法函数。
或
- methods - (object) 一(键:值)对象 , 关键是方法名,值是方法函数。
返回:
- (object) 该类型。
例子:
RegExp.extend('from', function(regexp, flags){ return new RegExp(regexp, flags); });Number.extend('parseCurrency', function(currency){ //取得一个字符串并转换成数组,然后进行特定计算 });
Generics
大多数类型的方法可以做为通用方法,有现有的JavaScript方法,MooTools增加的方法,或自己扩展的方法。
例如:
var everyArgBiggerThanTwo = function(){ // 代替这个 return Array.prototype.every.call(arguments, someFunction); // 你能用 return Array.every(arguments, someFunction); };
这是有用的,如果使用某种类型的方法,用做另一种类型的方法。如上面的例子,它使用的Arguments类型,不是一个真正的数组,所以arguments.every(fn)行不能。但是Array.every(arguments, fn)没问题在MooTools中。
语法:
Type.methodName(thisArg[, arg1, arg2, ...]);
参数:
- thisArg - (mixed) 该参数通常用法thisArg.method([arg1, arg2, ...]);.
- arg1, arg2, ... - (mixed) 方法参数的附加参数。
返回:
- (mixed) 方法返回的任何值。