ȸ¿ø·Î±×ÀÎ
14³â Àü
[ ÇÔ¼öÈ£Ã⿬»êÀÚ ]
()¿¬»êÀÚ´Â ÇÔ¼ö È£ÃâÇϴµ¥ »ç¿ëÇϸç...
ù¹ø° ÇÇ¿¬»êÀÚ´Â ÇÔ¼öÀ̸§ ¶Ç´Â ÇÔ¼ö¸®ÅÍ·²ÀÌ ¿À°í µÎ¹ø° ÇÇ¿¬»êÀÚ´Â () ³»¿¡ ÆĶó¸ÞÅÍ°ªÀÌ ½°Ç¥·Î ±¸ºÐÇؼ ¿Â´Ù...()È£Ã⿬»êÀڴ ù¹ø° ÁöÁ¤ÇÑ ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù.
ÇÔ¼ö´Â ÇϳªÀÇ µ¥ÀÌÅÍ Å¸ÀÔÀ̸ç...ÇÔ¼ö¸íÀº ÇÔ¼ö¸®ÅÍ·²ÀÇ ·¹ÆÛ·±½ºÀÌ´Ù.
°í·Î ÀÏ¹Ý º¯¼öó·³ ¹è¿,°´Ã¼ ÇÁ·ÎÆÛƼ,ÆĶó¸ÞÅÍ µîµî ÀÚÀ¯·Ó°Ô »ç¿ëÇÒ¼ö ÀÖ´Ù.
( function(x,y){ alert!(x+','+y); } )(1,2);
// ()È£Ã⿬»êÀÚ´Â µÎ¹ø° ÇÇ¿¬»êÀÚ¿Í ÇÔ²², ù¹ø° ÇÇ¿¬»êÀÚÀÎ ÇÔ¼ö¸®ÅÍ·²À» È£ÃâÇÑ´Ù.
//¹°·Ð ÇÔ¼ö¸íÀÌ ¿À¸é ÇØ´ç ·¹ÆÛ·±½º¸¦ È£ÃâÇÑ´Ù.. ¾Õ¿¡ ()´Â È£Ã⿬»êÀÚ°¡ ¾Æ´Ï¶ó ±×·ìȽÃŲ°Í »ÓÀÌ´Ù.
function test( x ){
var an=1; //ÇÔ¼ö³» Áö¿ªº¯¼ö.
alert!( typeof test +','+ typeof test.prototype +','+ typeof this); // function , object , object
alert!( this instanceof Window ); // true , ÇÔ¼ö¸®ÅÍ·²ÀÌ ÀÚµ¿À¸·Î Àü¿ª°´Ã¼¿¡ Ãß°¡µÇ±â¶§¹®..
}
test();
alert!(typeof test); //function
test.bn = 2; //Á¤Àû¸â¹öº¯¼ö ¼³Á¤
alert!(test.an +","+ test.bn ); // undefined, 2
alert!(test.length +','+ test.toString() ); // 1, function test( x ){ ...}
alert!( (new test()).an +","+ (new test()).bn); // undefined, undefined
// Á¤Àûº¯¼ö³ª Á¤ÀûÇÔ¼ö´Â ÇÔ¼ö¸í(Ŭ·¡½º¸í)À¸·Î ¿ÜºÎ¿¡¼ Ãß°¡ÇÏ°í ÂüÁ¶ÇÒ¼ö ÀÖ´Ù.
// ¸¸¾à °´Ã¼¸¦ »ý¼ºÇÏ´õ¶óµµ Á¤Àûº¯¼ö¿Í ÇÔ¼ö´Â °´Ã¼¿Í´Â ¹«°üÇϸç, ¸ðµç °´Ã¼¿¡ ÂüÁ¶°¡´ÉÇÑ ¸â¹öº¯¼ö ¹× ÇÔ¼ö¸¦ ¸¸µé·Á¸é prototypeÀ» »ç¿ëÇÑ´Ù.
// prototypeÀº ÇÔ¼ö¼±¾ð½Ã ÀÚµ¿»ý¼ºµÇ´Â °´Ã¼·Î, ÇÔ¼ö¸í(Ŭ·¡½º)À¸·Î ¼±¾ð, ¸ðµç °´Ã¼¿¡¼ ÂüÁ¶°¡´ÉÇÏ´Ù. ÀÏÁ¾ÀÇ »ó¼Ó
++++
var y = new Function("x","return Math.sin(x)")
y.yy = function(){alert!('yy');}
y.yy();
alert!( Math.ceil(y(360)) );
alert!(y);
++++
var o = {_an:1,_bn:2} //¹«¸í°´Ã¼À̱ⶫ½Ã ÇÁ·ÎÆÛƼ¿¡ this¸¦ ¾²¸é ÂüÁ¶ºÒ°¡´É
alert!(o._an +","+ o._bn); // 1, 2
function o(){
var aa= 1;
this._an = 1; //»ç¿ëÀÚ Á¤ÀÇ °´Ã¼ ÇÁ·ÎÆÛƼ¿¡¼ aa´Â Áö¿ªº¯¼öÀÓ
this._bn = ofunc;
}
function ofunc(){ return 2}
alert!( (new o())._an +','+ (new o())._bn() );
++++
var y = "global";
function testFunction() {
var y = "local";
return new Function("return y"); // Function°´Ã¼´Â top-level¿¡¼ ÄÄÆÄÀϵǹǷΠÁö¿ªº¯¼ö¸¦ ÂüÁ¶ÇÒ¼ö ¾ø´Ù.
}
alert!( testFunction()() ); //global Ãâ·Â
++++
function f(x,y){ return x+y }
alert!( f.apply( {},[1,2] ) ); // f ÇÔ¼ö¸¦ ¹«¸í°´Ã¼ÀÇ ¸Þ¼Òµåó·³ È£ÃâÇÑ´Ù. Áï {}.f(1,2)¿Í °°´Ù
alert!( f.call( {},1,2 ) ); // ¹Ù·Î À§ ¹®Àå°ú µ¿ÀÏÇÏ´Ù.
++++
function f(x,y){
alert!(arguments.callee); // callee ÇÔ¼ö ÀÚ½ÅÂüÁ¶
return x+y
}
f(1,2);
--------------------------------------------------------------------------------
[ Á¤Àû Ŭ·¡½º ]
//Á¤Àû Ŭ·¡½º
var staticClass = (function(){
var cnt = 0; //Áö¿ªº¯¼ö Çѹø¸¸ ½ÇÇàµÊ. ÃʱâÈ¿ë
return {
staticMethod:function(){ return cnt++; }
}
})();
document.write(staticClass.staticMethod()); // 0 Ãâ·Â
document.write(staticClass.staticMethod()); // 1 Ãâ·Â
//ÀÏ¹Ý Å¬·¡½º + Á¤Àû Ŭ·¡½º
var staticClass = (function(){
var name = "Å×½ºÆ®"; //Áö¿ªº¯¼ö
function init(name){
this.name = name; //¸â¹öº¯¼ö¼³Á¤
}
init.staticMethod = function(){
return "staticMethod "+name;
}
init.prototype = { //initÇÔ¼öÀÇ prototype¼³Á¤
noStaic1:function(){
return "noStaic1 " + this.name;
},
noStaic2:function(){
return "noStaic2 " + this.name;
}
}
return init;
})();
//Á¤Àû¸Þ¼Òµå¿¡ Á¢±Ù
alert!(staticClass.staticMethod());
//Ŭ·¡½º ÀνºÅϽº »ý¼º ÈÄ ¸Þ¼Òµå¿¡ Á¢±Ù
var obj = new staticClass("test");
alert!( obj.noStaic1() );
++++
´Ù¸¥ ¿¹..
function car(m) {
this.model = m
this.staticFunc = function(str){ //°´Ã¼ÇÔ¼ö(Ŭ·¡½ºÇÔ¼öÂüÁ¶¿ë)
return car.myMethod(str); //Ŭ·¡½ºÇÔ¼öÂüÁ¶
}
//this.staticFunc = staticFunc;
}
function myMethod(str){ //Ŭ·¡½ºÇÔ¼ö
alert!('myMethod : '+str);
}
function myMethod2(){
alert!('myMethod2');
}
//function staticFunc(str){return myMethod(str);}
car.myMethod = myMethod; //Ŭ·¡½ºÇÔ¼öÃß°¡
car.myMethod('test'); //Ŭ·¡½ºÇÔ¼öÈ£Ãâ
car.prototype.maker = true;
var carObj1 = new car("Acura")
var carObj2 = new car("BMW")
carObj1.staticFunc('aaa');
carObj2.myMethod2 = myMethod2;
alert!(carObj1.model +','+ carObj1.maker);
carObj1.myMethod2();
carObj2.myMethod2(); //error;
--------------------------------------------------------------------------------
[ º¯¼öÀÇ ºí·Ï¹üÀ§°¡ ¾ø´Ù ]
º¯¼ö ¼±¾ð½Ã ÇÔ¼öÀÇ ºí·Ï¸¸ Àǹ̰¡ ÀÖÀ»»Ó..³ª¸ÓÁö ºí·ÏÀº Àǹ̰¡ ¾ø´Ù.
function test(o){
var i = 0; // i´Â ÇÔ¼öÀüü¿¡ °ÉÃÄ Á¤ÀÇµÈ Áö¿ªº¯¼ö
if(typeof o == 'object')
{
var j = 0; // jµµ ifºí·Ï³»°¡ ¾Æ´Ï¶ó ÇÔ¼öÀüü¿¡ °ÉÃÄ Á¤ÀÇµÈ Áö¿ªº¯¼ö
for(var k=0; k<5; k++){ //kµµ forºí·Ï³»°¡ ¾Æ´Ï¶ó ÇÔ¼öÀüü¿¡ °ÉÃÄ Á¤ÀÇµÈ Áö¿ªº¯¼ö
document.write(k);
}
document.write('-'+k);
}
document.write('-'+j);
}
test({}); // Ãâ·Â : 01234-5-0
var scope = "global";
function f() {
alert!(scope); // scope´Â ÇÔ¼ö³» ¼±¾ðµÈ Áö¿ªº¯¼ö ÂüÁ¶..°ªÇÒ´çµÇ±âÀü ÂüÁ¶ÇßÀ¸¹Ç·Î undefined
var scope = "local";
alert!(scope);
}
f();
--------------------------------------------------------------------------------
[ Àü¿ª°´Ã¼ ]
ÀÚ¹Ù½ºÅ©¸³Æ® ÀÎÅÍÇÁ¸®ÅÍ°¡ ÀÛµ¿À» ½ÃÀÛÇÒ¶§...ÀÓÀÇÀÇ ½ºÅ©¸³Æ®Äڵ带 ½ÇÇàÇϱâÀü¿¡ ÀÚ¹Ù½ºÅ©¸³Æ® ³»ºÎ¿¡¼ óÀ½À¸·Î ¼öÇàÇÏ´Â ÀÛ¾÷Àº Àü¿ª°´Ã¼(global object)¸¦ »ý¼ºÇÏ´Â °ÍÀÌ´Ù.
Àü¿ª°´Ã¼¿¡´Â ¹Ì¸®Á¤ÀÇµÈ ¸ðµçÇÔ¼ö¿Í ÇÁ·ÎÆÛƼ°¡ µé¾î ÀÖ´Ù. ÀÌ Àü¿ª°´Ã¼ÀÇ ÇÁ·ÎÆÛƼ ¹× ÇÔ¼ö´Â ÀÚ¹Ù½ºÅ©¸³Æ® ÇÁ·Î±×·¥ÀÇ Àü¿ªº¯¼öÀ̹ǷΠÁ÷Á¢ Àü¿ª°´Ã¼¸¦ ÂüÁ¶ÇÏÁö ¾Ê°í ¹Ù·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù.
¶ÇÇÑ ¿ì¸®°¡ ÀÚ¹Ù½ºÅ©¸³Æ®Äڵ忡 Àü¿ªº¯¼ö¿Í ÇÔ¼ö¸¦ ¼±¾ðÇÏ°í ºê¶ó¿ìÀú¿¡ ½ÇÇàÇÏ¸é ½ÇÁ¦·Î Àü¿ª°´Ã¼ÀÇ ÇØ´ç ÇÁ·ÎÆÛƼÀÎ window°´Ã¼¿¡ ÀÚµ¿À¸·Î Ãß°¡ÇÏ´Â °ÍÀÌ´Ù.
¿¹¸¦ µé¾î parseIntÇÔ¼ö¿Í Math°´Ã¼´Â Àü¿ª°´Ã¼¿¡ ¹Ì¸® Á¤ÀÇµÈ parseInt,MathÇÁ·ÎÆÛƼ¸¦ ÂüÁ¶ÇÑ´Ù.
½ºÅ©¸³Æ® Äڵ忡 »ç¿ëÀÚ ÇÔ¼ö¿Í º¯¼ö´Â ÇØ´ç Àü¿ª°´Ã¼ÀÎ window°´Ã¼¿¡ ÀÚµ¿Ãß°¡µÈ´Ù.
Áï, Ŭ¶óÀ̾ðÆ® ÀÚ¹Ù½ºÅ©¸³Æ®¿¡¼´Â Àü¿ª°´Ã¼·Î¼ ºê¶ó¿ìÀú ³»ºÎ¸¦ ³ªÅ¸³»´Â window°´Ã¼¸¦ »ç¿ëÇÑ´Ù.
¿ì¸®°¡ ÀÛ¼ºÇÏ´Â ÄÚµåÀÇ Àü¿ªº¯¼ö¿Í ÇÔ¼öµéÀº window°´Ã¼¿¡ ÇÁ·ÎÆÛƼ·Î ÀÚµ¿ Ãß°¡µÈ´Ù.
¶ÇÇÑ ÀÚ±âÀÚ½ÅÀ» ÂüÁ¶ÇÏ´Â windowÇÁ·ÎÆÛƼµµ Æ÷ÇÔÇÏ°í ÀÖ´Ù. ÀÌ ÇÁ·ÎÆÛƼ¸¦ this·Î ÂüÁ¶ÇÒ ¼ö ÀÖ°í Á÷Á¢ window¸¦ »ç¿ëÇÒ ¼öµµ ÀÖ´Ù. ÇÔ¼ö³»¿¡¼ÀÇ this¿Í´Â ´Ù¸¥Àǹ̴Ù.
var test = function(){alert!('test');}
var scope = 20;
for(var p in window){
document.write(window[p]+'<br>');
}
//Ãâ·Â : ¾Æ·¡¿Í °°ÀÌ Ãß°¡µÈ °ÍÀ» ¾Ë¼ö ÀÖ´Ù.
// 20
// function () { alert!("a");}
// .......
--------------------------------------------------------------------------------
[ À̺¥Æ® ]
//Keyboard Events
function showKey(e) {
var key;
if (window.event) {
key = window.event.keyCode;
} else {
key = e.keyCode;
}
key = String.fromCharCode(key);
document.getElementById("para").innerHTML += key;
}
window.onload = function() {
document.onkeydown = showKey;
}
<p id="para">Click and type here: </p>
//Mouse Events
function showPosition(e) {
var x, y;
if (window.event) { //IE
x = window.event.clientX;
y = window.event.clientY;
} else { //FF
x = e.pageX;
y = e.pageY;
}
//indow.status = "x: " + x + ", y: " + y;
var key = "x: " + x + ", y: " + y;
document.getElementById("para").innerHTML = key;
}
window.onload = function() {
document.onmousemove = showPosition;
}
<div id="mstatus"></div>
//Extending Built-In Objects
function isLeapYear() {
var y = this.getFullYear();
return (y % 4 == 0 && (y % 100 != 0 || y % 400 == 0));
}
Date.prototype.isLeapYear = isLeapYear;
var d = new Date();
alert!(d.isLeapYear());
//Form with the Enter Key
function checkKey(e) {
var key;
if (window.event) {
key = window.event.keyCode;
} else {
key = e.keyCode;
}
if (key == 13) { // ¿£ÅÍ
document.forms[0].submit();
}
}
window.onload = function() {
document.forms[0].elements["field"].onkeydown = checkKey;
}
<form><input name="field" type="text" /></form>
--------------------------------------------------------------------------------
[ »ó¼Ó ]
function UniversalTranslator() {
this.copyright = " copyright...";
}
function UniversalCounter() {
this.Count = count;
var numbers = {
"en": "one, two, three",
"fr": "un, deux, trois",
"de": "eins, zwei, drei"
};
function count(language) {
if (numbers[language]) {
alert!(numbers[language]+" [ " + this.copyright + " ]");
} else {
window.alert!("Unknown language");
}
}
}
UniversalCounter.prototype = new UniversalTranslator();
var uc = new UniversalCounter();
uc.Count("de");
̵̧ : 289
̵̧
¸ñ·Ï