Core
Native
Class
Element
Utilities
Fx
Request
Plugins
- Fx.Slide
- Fx.Scroll
- Fx.Elements
- Drag
- Drag.Move
- Color
- Group
- Hash.Cookie
- Sortables
- Tips
- SmoothScroll
- Slider
- Scroller
- Assets
- Accordion
関数のメソッドです。
他のすべての関数のプロパティで利用される関数クロージャを作るためのベース関数です。
var createdFunction = myFunction.create([options]);
var myFunction = function(){ alert("I'm a function. :D"); }; var mySimpleFunction = myFunction.create(); //単なるコピーです var myAdvancedFunction = myFunction.create({ //この関数は呼び出されると、attemptの条件にしたがいます arguments: [0,1,2,3], attempt: true, delay: 1000, bind: myElement });
引数とバインドを持ったクロージャを返します。
var newFunction = myFunction.pass([args[, bind]]);
var myFunction = function(){ var result = 'Passed: '; for (var i = 0, l = arguments.length; i < l; i++){ result += (arguments[i] + ' '); } return result; } var myHello = myFunction.pass('hello'); var myItems = myFunction.pass(['peach', 'apple', 'orange']); //これ以降、関数が実行できます: alert(myHello()); //myFunctionには"heloo"が渡されます alert(myItems()); //myFunctionに要素の配列が渡されます
関数の実行を試みます。
var result = myFunction.attempt([args[, bind]]);
var myObject = { 'cow': 'moo!' }; var myFunction = function(){ for (var i = 0; i < arguments.length; i++){ if(!this[arguments[i]]) throw('doh!'); } }; var result = myFunction.attempt(['pig', 'cow'], myObject); //戻り値: null
ターゲットとなる関数内でのthisのスコープを変更して、任意のパラメータにバインドします。
myFunction.bind([bind[, args[, evt]]]);
function myFunction(){ //ここでの'this'はwindowを参照していて、要素ではありません。 //操作したい要素に対してこの関数をバインドしなくてはなりません。 this.setStyle('color', 'red'); }; var myBoundFunction = myFunction.bind(myElement); myBoundFunction(); //これでmyElementのテキストを赤くできます。
ターゲットとなる関数内の'this'のスコープを変更し、任意のパラメータにバインドします。これはまた、イベントに「空間」を作ります。これにより、Element:addEventとあわせて関数と引数を使うことができるようになります。
myFunction.bindWithEvent([bind[, args[, evt]]]);
function myFunction(e, add){ //ここでは'this'が要素ではなく、windowを参照していることに注意してください。 //変更したい要素をこの関数にバインドする必要があります。 this.setStyle('top', e.client.x + add); }; $(myElement).addEvent('click', myFunction.bindWithEvent(myElement, 100)); //myElementをクリックすると、マウスカーソルの位置から100ピクセル横に移動します。
指定した時間だけ関数の実行を送らせます。
var timeoutID = myFunction.delay([delay[, bind[, args]]]);
var myFunction = function(){ alert('moo! Element id is: ' + this.id); }; //50ミリ秒待ってから、myElementがバインドされたmyFunctionを実行します。 myFunction.delay(50, myElement); //'moo! Element id is: ...'をアラート //1秒待ってからアラートする無名関数 (function(){ alert('one second later...'); }).delay(1000);
指定した間隔を空けて定期的に関数を実行します。定期実行は$clear関数を利用することで停止できます。
var intervalID = myFunction.periodical([period[, bind[, args]]]);
var Site = { counter: 0 }; var addCount = function(){ this.counter++; }; addCount.periodical(1000, Site); //Siteに秒数を付け加えます。
任意の引数と要素をバインドして関数を実行します。applyと同様ですが、単一の引数をサポートするために引数の順番が逆になっています。
var myFunctionResult = myFunction.run(args[, bind]);
var myFn = function(a, b, c){ return a + b + c; } var myArgs = [1,2,3]; myFn.run(myArgs); //戻り値: 6
var myFn = function(a, b, c) { return a + b + c + this; } var myArgs = [1,2,3]; myFn.run(myArgs, 6); //戻り値: 12
このドキュメントはMooToolsのドキュメントを元に高橋文樹が翻訳(ちょっと改変)しました。
本家と同じく、Attribution-NonCommercial-ShareAlike 3.0ライセンスで公表されています。