Small update of the French translation
[geany-mirror.git] / tests / ctags / jsFunc_tutorial.js
blob8aa7349365e345579230eab5b4a34b72d5488a7d
1 \r
2 /*\r
3  * These samples were retrieved from this website:\r
4  * http://www.permadi.com/tutorial/jsFunc/\r
5  *\r
6  * This the output you should see from running:\r
7  * ctags -f - Test/jsFunc_tutorial.js\r
8  *    functions\r
9  *      Ball1\r
10  *      Ball3\r
11  *      D1\r
12  *      D2\r
13  *      D2A\r
14  *      D3\r
15  *      D4\r
16  *      D5\r
17  *      DT1\r
18  *      DT2\r
19  *      DT2A\r
20  *      DT3\r
21  *      PT1\r
22  *      calculate8\r
23  *      getHalfOf7\r
24  *      getHalfOf7.calculate\r
25  *      getHalfOf8\r
26  *      getSalaryFunctionDT9\r
27  *      myFunction4\r
28  *      myFunction5\r
29  *      myFunction6\r
30  *      myFunction6A\r
31  *      myFunction6AE\r
32  *      myFunction6B\r
33  *      myFunction6E\r
34  *      myObject.add\r
35  *      savedFunc6B\r
36  *      sayName4A\r
37  *      theAdd\r
38  *    classes\r
39  *      DT4\r
40  *      DT5\r
41  *      DT6\r
42  *      DT7\r
43  *      DT7A\r
44  *      DT8\r
45  *      DT9\r
46  *      PT2\r
47  *      PT3\r
48  *      addSalaryFunction\r
49  *      addSalaryFunctionDT9\r
50  *    methods\r
51  *      DT7.getSalary\r
52  *      DT7A.getSalary\r
53  *      DT8.getSalary\r
54  *      PT2.livesIn\r
55  *      PT2.price\r
56  *      PT3.addSalary\r
57  *      PT3.getSalary\r
58  *    variables\r
59  *      my_global_var1\r
60  */\r
62 // Example D1\r
64 function D1(a, b) \r
65 {                     \r
66   return a+b;\r
67 }      \r
68 alert(D1(1,2));        // produces 3\r
70 var my_global_var1 = 'global';\r
72 // Example D2\r
74 var D2=function(a, b) \r
75 {                     \r
76   return a+b;\r
77 }                     \r
78 alert(D2(1,2));        // produces 3\r
81 // Example D2A\r
83 var D2A=function theAdd(a, b) \r
84 {                     \r
85   return a+b;\r
86 }                     \r
87 alert(D2A(1,2));           // produces 3\r
88 alert(theAdd(1,2));        // also produces 3\r
90 var myObject=new Object();\r
91 myObject.add=function(a,b){return a+b};  \r
92 // myObject now has a property/a method named "add"\r
93 // and I can use it like below\r
94 myObject.add(1, 2);\r
97 // Example D3\r
99 var D3=new Function("a", "b", "return a+b;");\r
100 alert(D3(3,4));        // produces 7\r
103 // Example D4\r
105 var D4=new Function("a", "b", \r
106     // separate string using "\"\r
107   "('adding '+a+' and ' +b);\\r
108    return a+b;");\r
109 alert(D4(3,4));        // produces 7\r
112 // Example D5\r
114 function D5(myOperator)\r
116   return new Function("a", "b", "return a" + myOperator + "b;");\r
119 var add=D5("+");                // creates "add" function\r
120 var subtract=D5("-");           // creates "subtract" function\r
121 var multiply=D5("*");           // created "multiply" function\r
123 // test the functions\r
124 alert("result of add="+add(10,2));            // result is 12\r
125 alert("result of substract="+subtract(10,2)); // result is 8\r
126 alert("result of multiply="+multiply(10,2));  // result is 20\r
127 alert(add);\r
130 // Example 1\r
132 function Ball1()       // it may seem odd, but this declaration\r
133 {                     // creates a object named Ball\r
134   i=1;\r
135 }                     \r
136 alert(typeof Ball1);     // produces "function"\r
139 // Example 3\r
141 function Ball3()       // it may seem odd, but declaration\r
142 {                     // creates an object named Ball, and you can \r
143 }                     // refer to it or add properties to it like below\r
144 Ball3.callsign="The Ball"; // add property to Ball\r
145 alert(Ball3.callsign); // produces "The Ball"\r
148 // Example 4\r
150 function myFunction4(message) \r
151 \r
152   alert(message);\r
154 var ptr=myFunction4;  // ptr points to myFunction\r
155 ptr("hello");        // executes myFunction which will prints "hello"\r
158 // Example 4A\r
160 function sayName4A(name) \r
161 \r
162   alert(name);\r
165 var object1=new Object();      // creates 3 objects\r
166 var object2=new Object();\r
167 var object3=new Object();\r
168 object1.sayMyName4A=sayName;       // assign the function to all objects\r
169 object2.sayMyName4A=sayName;\r
170 object3.sayMyName4A=sayName;\r
171   \r
172 object1.sayMyName4A("object1");    // prints "object1"\r
173 object2.sayMyName4A("object2");    // prints "object2"\r
174 object3.sayMyName4A("object3");    // prints "object3"\r
177 // Example 5\r
179 function myFunction5() \r
180 \r
181   alert(myFunction.message);\r
183 myFunction5.message="old";\r
184 var ptr1=myFunction5;                 // ptr1 points to myFunction\r
185 var ptr2=myFunction5;                 // ptr2 also points to myFunction\r
187 ptr1();                              // prints "old"\r
188 ptr2();                              // prints "old"\r
190 myFunction5.message="new";\r
192 ptr1();                              // prints "new"\r
193 ptr2();                              // prints "new"\r
196 //Example 6:\r
198 function myFunction6() \r
199 \r
200   alert("Old");\r
202 myFunction6(); // prints "Old"\r
204 myFunction6E=function()\r
206   alert("New");\r
207 };\r
208 myFunction6E(); // prints "New"\r
211 //Example 6A:\r
213 function myFunction6A() \r
214 \r
215   alert("Old");\r
217 var savedFunction=myFunction6A;\r
219 myFunction6AE=function()\r
221   alert("New");\r
222 };\r
223 myFunction6AE();    // prints "New"\r
224 savedFunction();  // printf "Old"\r
226 //Example 6B:\r
228 function myFunction6B() \r
229 \r
230   alert("Old");\r
232 var savedFunc=myFunction6B;\r
233 savedFunc6B=function()\r
235   alert("New");\r
236 };\r
237 myFunction6B();            // prints "Old"\r
238 savedFunc6B();             // prints "New"\r
240 // Example 7\r
242 function getHalfOf7(num1, num2, num3)     \r
243 \r
244   function calculate(number)\r
245   {\r
246     return number/2;\r
247   }\r
249   var result="";\r
250   result+=calculate(num1)+" ";\r
251   result+=calculate(num2)+" ";\r
252   result+=calculate(num3);\r
253 }         \r
254 var resultString=getHalfOf7(10,20,30);\r
255 alert(resultString);         // prints "5 10 15"\r
257 // Example 8\r
259 function calculate8(number)\r
261   return number/3;\r
264 function getHalfOf8(num1, num2, num3)     \r
265 \r
266   function calculate(number)\r
267   {\r
268     return number/2;\r
269   }\r
271   var result="";\r
272   result+=calculate(num1)+" ";\r
273   result+=calculate(num2)+" ";\r
274   result+=calculate(num3);\r
275 }         \r
276 var resultString=getHalfOf8(10,20,30);\r
277 alert(resultString);         // prints "5 10 15"\r
279 // Example DT1\r
280 function DT1()\r
283 var ball0=new DT1(); // ball0 now points to a new object\r
285 alert(ball0);         // prints "Object" because ball0 is now an Object\r
288 // Example DT2\r
290 function DT2(message)\r
292   alert(message);\r
294 var ball1=new DT2("creating new Ball");  // creates object & \r
295                                           // prints the message\r
296 ball1.name="ball-1";                      // ball0 now has a "name" property\r
297 alert(ball1.name);                        // prints "ball-0"\r
300 // Example DT2A\r
302 function DT2A(message)\r
304   alert(message);\r
306 var ball2=new Object();\r
307 ball2.construct=DT2A;\r
308 ball2.construct("creating new ball2");  // executes ball0.Ball("creating..");\r
309 ball2.name="ball-2";                      \r
310 alert(ball2.name);                        \r
313 // Example DT3 (creates 3 ball objects)\r
315 function DT3()\r
318 var ball3=new DT3(); // ball0 now points to a new instance of type Ball\r
319 ball3.name="ball-3";  // ball0 now has a "name" property\r
321 var ball4=new DT3();\r
322 ball4.name="ball-4";\r
324 var ball5=new DT3();\r
326 alert(ball0.name);    // prints "ball-0"\r
327 alert(ball1.name);    // prints "ball-1"\r
328 alert(ball2.name);    // oops, I forgot to add "name" to ball2!\r
331 // Example DT4\r
333 function DT4(message, specifiedName)\r
335   alert(message);\r
336   this.name=specifiedName;                \r
338 var ball6=new DT4("creating new Ball", "Soccer Ball");  \r
339 alert(ball6.name);                   // prints "Soccer Ball"\r
342 // Example DT5\r
344 function DT5(color, specifiedName, owner, weight)\r
346   this.name=specifiedName;                \r
347   this.color=color;\r
348   this.owner=owner;\r
349   this.weight=weigth;\r
351 var ball7=new DT5("black/white", "Soccer Ball", "John", 20);  \r
352 var ball8=new DT5("gray", "Bowling Ball", "John", 30);  \r
353 var ball9=new DT5("yellow", "Golf Ball", "John", 55);  \r
354 var balloon=new DT5("red", "Balloon", "Pete", 10);  \r
356 alert(ball7.name);                        // prints "Soccer Ball"\r
357 alert(balloon.name);                      // prints "Balloon"\r
358 alert(ball9.weight);                      // prints "55"\r
361 // Example DT6\r
363 function DT6(name, salary, mySupervisor)\r
365   this.name=name;                \r
366   this.salary=salary;\r
367   this.supervisor=mySupervisor;\r
369 var boss=new DT6("John", 200);\r
371 var manager=new DT6("Joan", 50, boss);  \r
372 var teamLeader=new DT6("Rose", 50, boss);  \r
374 alert(manager.supervisor.name+" is the supervisor of "+manager.name);\r
375 alert(manager.name+"\'s supervisor is "+manager.supervisor.name);  \r
378 // Example DT7\r
380 function DT7(name, salary)\r
382   this.name=name;                \r
383   this.salary=salary;\r
385   this.addSalary=addSalaryFunction;\r
387   this.getSalary=function()\r
388                  {\r
389                    return this.salary;\r
390                  };\r
393 function addSalaryFunction(addition)\r
395   this.salary=this.salary+addition;\r
398 var boss=new DT7("John", 200000);\r
399 boss.addSalary(10000);                    // boss gets 10K raise\r
400 alert(boss.getSalary());                  // print 210K\r
404 function DT7A(name, salary)\r
406   this.name=name;                \r
407   this.salary=salary;\r
409   this.addSalary=addSalaryFunction;\r
411   this.getSalary=function()\r
412                  {\r
413                    return this.salary;\r
414                  };\r
417 function addSalaryFunction(addition)\r
419   this.salary=this.salary+addition;\r
422 var boss=new DT7A("John", 200000);\r
423 var boss2=new DT7A("Joan", 200000);\r
424 var boss3=new DT7A("Kim", 200000);\r
427 // Example DT8\r
429 function DT8(name, salary)\r
431   this.name=name;                \r
432   this.salary=salary;\r
434   this.addSalary=addSalaryFunction;\r
435   this.getSalary=function()\r
436                  {\r
437                    return this.salary;\r
438                  };\r
441 function addSalaryFunction(addition)\r
443   this.salary=this.salary+addition;\r
446 var boss1=new DT8("John", 200000);\r
447 var boss2=new DT8("Joan", 200000);\r
450 // add properties to getSalary function object.\r
451 boss1.getSalary.owner="boss1";\r
452 boss2.getSalary.owner="boss2";\r
453 alert(boss1.getSalary.owner);   // prints "boss1"\r
454 alert(boss2.getSalary.owner);   // prints "boss2"\r
455 // if both objects are pointing to the same function object, then \r
456 // both output above should have printed "boss2". \r
458 // add properties to addSalary function object.\r
459 boss1.addSalary.owner="boss1";\r
460 boss1.addSalary.owner="boss2";\r
461 alert(boss1.addSalary.owner);   // prints "boss2"\r
462 alert(boss2.addSalary.owner);   // prints "boss2"\r
463 // since both objects are not pointing to the same function, \r
464 // then changes in one, affects all instances (so, both prints "boss2"). \r
467 // Example DT9\r
469 function DT9(name, salary)\r
471   this.name=name;                \r
472   this.salary=salary;\r
474   this.addSalary=addSalaryFunctionDT9;\r
475   this.getSalary=getSalaryFunctionDT9;\r
478 function getSalaryFunctionDT9()\r
480   return this.salary;\r
483 function addSalaryFunctionDT9(addition)\r
485   this.salary=this.salary+addition;\r
489 // Example PT1\r
491 function PT1()\r
494 alert(PT1.prototype);  // prints "Object"\r
497 // Example PT2\r
499 function PT2(name, color)\r
501   this.name=name;\r
502   this.color=color;\r
504 PT2.prototype.livesIn="water";\r
505 PT2.prototype.price=20;\r
508 // Example PT3\r
510 function PT3(name, salary)\r
512   this.name=name;                \r
513   this.salary=salary;\r
516 PT3.prototype.getSalary=function getSalaryFunction()\r
518   return this.salary;\r
521 PT3.prototype.addSalary=function addSalaryFunction(addition)\r
523   this.salary=this.salary+addition;\r