MoinMoin Logo
  • Comments
  • Immutable Page
  • Menu
    • Navigation
    • RecentChanges
    • FindPage
    • Local Site Map
    • Help
    • HelpContents
    • HelpOnMoinWikiSyntax
    • Display
    • Attachments
    • Info
    • Raw Text
    • Print View
    • Edit
    • Load
    • Save
  • Login

Navigation

  • Start
  • Sitemap

Upload page content

You can upload content for the page named below. If you change the page name, you can also upload content for another page. If the page name is empty, we derive the page name from the file name.

File to load page content from
Page name
Comment

  • Javascript
  • SpiderMonkey

SpiderMonkey

SpiderMonkey is Mozilla's Javascript engine written in C/C++. It is used in various Mozilla products, including Firefox, and is available under the MPL2.

Example code

   1 #!/usr/bin/js
   2 function CTest(){
   3   this.counter=0;
   4 }
   5 
   6 
   7 CTest.prototype.increment=function(){
   8   this.counter++;
   9 };
  10 
  11 CTest.prototype.show=function(){
  12   putstr(this.counter);
  13   putstr("\r\n");
  14 };
  15 
  16 var c = new CTest();
  17 var d = new CTest();
  18 c.increment();
  19 c.increment();
  20 c.increment();
  21 c.show();
  22 
  23 d.increment();
  24 d.increment();
  25 d.show();

Run it with:

  • chmod 755 test.js
  • ./test.js

SpiderMonkey is installed on Slackware 14.

Windows binary

  • https://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central/jsshell-win64.zip

Example of prototype/inheritance

  • https://developer.mozilla.org/en/docs/Web/JavaScript/Inheritance_and_the_prototype_chain

When it comes to inheritance, Javascript only has one construct: objects. Each object has an internal link to another object called its prototype (proto).

Javascript objects are dynamic "bags" of properties (referred to as own properties). JavaScript objects have a link to a prototype object.

   1 // https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects
   2 var a = {"key":"A value"};
   3 var b = {};
   4 b.__proto__ = a; // set a as prototype of b . b inherits a 
   5 /*var b = Object.create( a );*/
   6 b.other="aaaa";
   7 if( ! b.hasOwnProperty('key') ) print( "b doesn't have own property key" );
   8 if( b.hasOwnProperty('other') ) print( b.other );
   9 
  10 if( a.hasOwnProperty('key') ) print( a['key'] );
  11 if( a.hasOwnProperty('other') ) print( a['other'] );
  12 
  13 b.key='Other Value'; // b has own key "key" and a has also key "key" with different value
  14 
  15 print('\nkeys in object a');
  16 for(var key in a){
  17     print( key ,'->' , a[key] );
  18 }
  19 
  20 print('\nKeys in object b');
  21 for(var key in b){
  22   print( key ,'->' , b[key] );
  23 }
  24 
  25 print('Value for key in prototype of b' , b.__proto__.key );
  26 
  27 //-------
  28 print();
  29 function f(){
  30   this.propx='asdf';
  31   this.fn=function(){print("aaaa");};
  32   this.nr=123.4;
  33 }
  34 
  35 f.prototype.protoFn=function(){ print("bbb"); };
  36 
  37 var x = new f();
  38 print('x instance of f '  , x instanceof f);
  39 print('x is type of ' + typeof f);
  40 print('x instance of object '  , x instanceof Object);
  41 print('x instance of Array '  , x instanceof Array);
  42 
  43 for(var key in x){
  44   print( key ,':' , x[key] , x.hasOwnProperty(key) , typeof x[key]  );
  45 }
  46 
  47 print( JSON.stringify( x ) );
  • MoinMoin Powered
  • Python Powered
  • GPL licensed
  • Valid HTML 4.01