Skip to main content
Stack Overflow
  1. About
  2. For Teams

Return to Answer

deleted 12 characters in body
Source Link
Fluchtpunkt
  • 447
  • 5
  • 11

Just fiddled around and came up with this:Another way would be http://jsfiddle.net/nnUY4/ – does (i dont know if this kind of handling object creation and revealing functions follow any specific pattern?)

// Build-Reveal
var person={
create:function(_name){ // 'constructor'
 // prevents direct instantiation 
 // but no inheritance
 return (function() {
 
 var name=_name||"defaultname"; // private variable
 
 // [some private functions]
 
 function getName(){
 return name;
 }
 
 function setName(_name){
 name=_name;
 }
 
 return { // revealed functions
 getName:getName, 
 setName:setName
 }
 })();
 }
 }
 // ... no (instantiated) person so far ...
 var p=person.create(); // name will be set to 'defaultname'
 p.setName("adam"); // and overwritten
 var p2=person.create("eva"); // or provide 'constructor parameters'
 alert(p.getName()+":"+p2.getName()); // alerts "adam:eva"

Just fiddled around and came up with this: http://jsfiddle.net/nnUY4/ – does this kind of handling object creation and revealing functions follow any specific pattern?

// Build-Reveal
var person={
create:function(_name){ // 'constructor'
 // prevents direct instantiation 
 // but no inheritance
 return (function() {
 
 var name=_name||"defaultname"; // private variable
 
 // [some private functions]
 
 function getName(){
 return name;
 }
 
 function setName(_name){
 name=_name;
 }
 
 return { // revealed functions
 getName:getName, 
 setName:setName
 }
 })();
 }
 }
 // ... no (instantiated) person so far ...
 var p=person.create(); // name will be set to 'defaultname'
 p.setName("adam"); // and overwritten
 var p2=person.create("eva"); // or provide 'constructor parameters'
 alert(p.getName()+":"+p2.getName()); // alerts "adam:eva"

Another way would be http://jsfiddle.net/nnUY4/ (i dont know if this kind of handling object creation and revealing functions follow any specific pattern)

// Build-Reveal
var person={
create:function(_name){ // 'constructor'
 // prevents direct instantiation 
 // but no inheritance
 return (function() {
 
 var name=_name||"defaultname"; // private variable
 
 // [some private functions]
 
 function getName(){
 return name;
 }
 
 function setName(_name){
 name=_name;
 }
 
 return { // revealed functions
 getName:getName, 
 setName:setName
 }
 })();
 }
 }
 // ... no (instantiated) person so far ...
 var p=person.create(); // name will be set to 'defaultname'
 p.setName("adam"); // and overwritten
 var p2=person.create("eva"); // or provide 'constructor parameters'
 alert(p.getName()+":"+p2.getName()); // alerts "adam:eva"
Source Link
Fluchtpunkt
  • 447
  • 5
  • 11

Just fiddled around and came up with this: http://jsfiddle.net/nnUY4/ – does this kind of handling object creation and revealing functions follow any specific pattern?

// Build-Reveal
var person={
create:function(_name){ // 'constructor'
 // prevents direct instantiation 
 // but no inheritance
 return (function() {
 
 var name=_name||"defaultname"; // private variable
 
 // [some private functions]
 
 function getName(){
 return name;
 }
 
 function setName(_name){
 name=_name;
 }
 
 return { // revealed functions
 getName:getName, 
 setName:setName
 }
 })();
 }
 }
 // ... no (instantiated) person so far ...
 var p=person.create(); // name will be set to 'defaultname'
 p.setName("adam"); // and overwritten
 var p2=person.create("eva"); // or provide 'constructor parameters'
 alert(p.getName()+":"+p2.getName()); // alerts "adam:eva"
lang-js

AltStyle によって変換されたページ (->オリジナル) /