<!-- This example is from the book _JavaScript: The Definitive Guide_. --> <!-- Written by David Flanagan. Copyright (c) 1996 O'Reilly & Associates. --> <!-- This example is provided WITHOUT WARRANTY either expressed or implied.--> <!-- You may study, use, modify, and distribute it for any purpose. --> <SCRIPT LANGUAGE="JavaScript"> // Determining whether strings are compared by value or reference is easy. // We compare two clearly distinct strings that happen to contain the same // characters. If they are compared by value they will be equal, but if they // are compared by reference, they will not be equal: s1 = "hello"; s2 = "hell" + "o"; if (s1 == s2) document.write("Strings compared by value"); // Determining whether functions are compared by value or reference is trickier // because we cannot define two functions with the same name. Therefore, we // have to use unnamed functions. Don't feel you have to understand this code. // We create two distinct functions that contain exactly the same code. // If JavaScript says these two functions are equal, then functions are // compared by value, otherwise they are compared by reference F = new Function("return 1;"); // F and G are Function objects that contain G = new Function("return 1;"); // unnamed function values. f = F.valueOf(); // Convert F and G to the actual function values g = G.valueOf(); if (f == g) // now compare them document.write("Functions compared by value"); </SCRIPT>