Menu
Please help what is wrong in the simple function as below
[CODE]
<script type=”text/javascript”>
var myFlag=new Boolean();
function setFlag(name,flag){
name=”flag”;
}
</script>
[CODE]
After call the function setFlag(myFlag,true) I want var myFlag=true, but it doesnt work.
[CODE]
myObject = {
myFlag: new Boolean,
setFlag: function() {
this.myFlag = true;
}
}
console.info(myObject.myFlag); // {}
myObject.setFlag();
console.info(myObject.myFlag); // true
[/CODE]
<i>
</i><script type="text/javascript">
var myFlag = false;
function setFlag(flag){ myFlag = flag; }
</script>
<body>
<button onclick="setFlag(true)">Set flag</button>
<button onclick="setFlag(false)">Reset flag</button>
<br>
<button onclick="alert(myFlag)">flag Status</button>
</body>
var myFlag = { flag : false };
function setFlag( obj, flag )
{
obj.flag = flag;
}
setFlag( myFlag, true );
An encapsulated solution would still be preferable.Because it creates two global objects.[/QUOTE]
The function setFlag and the variable myFlag - i.e. two global objects.[/QUOTE]
<i>
</i>var myFlag = { flag : false };
function setFlag( obj, flag ) { obj.flag = flag; }
setFlag( myFlag, true );
[code=html]<html>
<script>
var Flag = (function() {
var myFlag = false;
function setFlag(state) {
myFlag = state;
}
return {
falseFlag : function() {
setFlag(false);
},
trueFlag: function() {
setFlag(true);
},
value: function() {
return myFlag;
}
}
})(); // the pair of brackets at the end are very important
document.writeln(Flag.value()+'<br />');
Flag.trueFlag();
document.writeln(Flag.value()+'<br />');
Flag.falseFlag();
document.writeln(Flag.value()+'<br />');
</script>[/code]
<script type="text/javascript">
function myFlag( state )
{
var cp = this.constructor.prototype;
if( state !== undefined )
cp.flag = !!state;
return cp.flag; <br/>
}
alert( myFlag() ); // not yet set ( undefined )
myFlag( true ); // set the flag
alert( myFlag() ); // no parameter returns last set value
myFlag( false );
alert( myFlag() );
</script>
<script type="text/javascript">
function myFlag( state )
{
var cp = this.constructor.prototype;
if( state !== undefined )
cp.flag = !!state;
return cp.flag; <br/>
}
alert( myFlag() ); // not yet set ( undefined )
myFlag( true ); // set the flag
alert( myFlag() ); // no parameter returns last set value
myFlag( false );
alert( myFlag() );
</script>
[/QUOTE]
<i>
</i><!doctype html>
<html>
<head>
<title> Boolean prototype </title>
<script type="text/javascript">
function myFlag( state ) {
var cp = this.constructor.prototype;
if( state !== undefined ) cp.flag = !!state;
return cp.flag; <br/>
}
</script>
</head>
<body>
<h1> Boolean Prototype </h1>
<button onclick="alert(myFlag())">Current Status</button>
<button onclick="myFlag(true)">Set Status TRUE</button>
<button onclick="myFlag(false)">Set Status FALSE</button>
</body>
</html>
That is pretty neat! If I'm counting correctly, that is only one global variable created by the JS.
Could you verify my understanding of what is going on...
[/quote]
<script type="text/javascript">
myFlag = ( new function()
{
this.f = function( state )
{
var cp = this.constructor.prototype;
if( state !== undefined )
cp.flag = !!state;
return cp.flag; <br/>
}
} ).f;
alert( myFlag() ) // undefined
myFlag( true )
alert( myFlag() ) // true
myFlag( false )
alert( myFlag() ) // false
</script>
Now that you have really blown my mind, could you explain how this new element in post #12 works?
Or how it differs from my earlier analysis in post #11?[/QUOTE]
[CODE]function myFlag( state ){
var cp = this.constructor.prototype;
alert(this===window)
if( state !== undefined )
cp.flag = !!state;
return cp.flag;
}
alert( myFlag() ); // not yet set ( undefined )[/CODE]
could you explain how this new element in post #12 works?
[/quote]
<i>
</i>myFlag = ( function()
{
var flag = undefined;
return function( state )
{
if( state !== undefined )
flag = !!state;
<i> </i>return flag;
}
})();
alert( myFlag() ) // undefined
myFlag( true )
alert( myFlag() ) // true
myFlag( false )
alert( myFlag() ) // false
0.1.9 — BETA 6.17