More actions
imported>linflus No edit summary |
(Repair batch-0002 pages from live compare) |
||
| (11 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
<!-- MONIWIKI PageList(^JavaScript/) --> | |||
* [[JavaScript/2011년스터디]] | |||
* [[JavaScript/2011년스터디/3월이전]] | |||
* [[JavaScript/2011년스터디/7월이전]] | |||
* [[JavaScript/2011년스터디/CanvasPaint]] | |||
* [[JavaScript/2011년스터디/JSON-js분석]] | |||
* [[JavaScript/2011년스터디/URLHunter]] | |||
* [[JavaScript/2011년스터디/김수경]] | |||
* [[JavaScript/2011년스터디/박정근]] | |||
* [[JavaScript/2011년스터디/서지혜]] | |||
* [[JavaScript/2011년스터디/윤종하]] | |||
__TOC__ | |||
= JavaScript Source Code = | |||
== 11일 == | == 11일 == | ||
* 2011.html | * 2011.html | ||
| Line 39: | Line 51: | ||
for(var i in score){ | for(var i in score){ | ||
document.write("<" + i + "><br/>"); | document.write("<" + i + "><br/>"); | ||
for(var j in score | for(var j in score[i]){ | ||
document.write(j + " : " + score | document.write(j + " : " + score[i][j] + "<br/>"); | ||
} | } | ||
} | } | ||
} | } | ||
== 18일 == | |||
* [http://ejohn.org/blog/simple-javascript-inheritance/ Simple JavaScript Inheritance] | |||
var Person = Class.extend({ | |||
init: function(isDancing){ | |||
this.dancing = isDancing; | |||
}, | |||
dance: function(){ | |||
return this.dancing; | |||
} | |||
}); | |||
var Ninja = Person.extend({ | |||
init: function(){ | |||
this._super( false ); | |||
}, | |||
dance: function(){ | |||
// Call the inherited version of dance() | |||
return this._super(); | |||
}, | |||
swingSword: function(){ | |||
return true; | |||
} | |||
}); | |||
var p = new Person(true); | |||
p.dance(); // => true | |||
var n = new Ninja(); | |||
n.dance(); // => false | |||
n.swingSword(); // => true | |||
// Should all be true | |||
p instanceof Person && p instanceof Class && | |||
n instanceof Ninja && n instanceof Person && n instanceof Class | |||
* Simple Class Creation and Inheritance | |||
(function(){ | |||
var initializing = false, fnTest = /xyz/.test(function(){xyz;}) ? /\b_super\b/ : /.*/; | |||
// The base Class implementation (does nothing) | |||
this.Class = function(){}; | |||
// Create a new Class that inherits from this class | |||
Class.extend = function(prop) { | |||
var _super = this.prototype; | |||
// Instantiate a base class (but only create the instance, | |||
// don't run the init constructor) | |||
initializing = true; | |||
var prototype = new this(); | |||
initializing = false; | |||
// Copy the properties over onto the new prototype | |||
for (var name in prop) { | |||
// Check if we're overwriting an existing function | |||
prototype[name] = typeof prop[name] == "function" && | |||
typeof _super[name] == "function" && fnTest.test(prop[name]) ? | |||
(function(name, fn){ | |||
return function() { | |||
var tmp = this._super; | |||
// Add a new ._super() method that is the same method | |||
// but on the super-class | |||
this._super = _super[name]; | |||
// The method only need to be bound temporarily, so we | |||
// remove it when we're done executing | |||
var ret = fn.apply(this, arguments); | |||
this._super = tmp; | |||
return ret; | |||
}; | |||
})(name, prop[name]) : | |||
prop[name]; | |||
} | |||
// The dummy class constructor | |||
function Class() { | |||
// All construction is actually done in the init method | |||
if ( !initializing && this.init ) | |||
this.init.apply(this, arguments); | |||
} | |||
// Populate our constructed prototype object | |||
Class.prototype = prototype; | |||
// Enforce the constructor to be what we expect | |||
Class.constructor = Class; | |||
// And make this class extendable | |||
Class.extend = arguments.callee; | |||
return Class; | |||
}; | |||
})(); | |||
* Initialization | |||
function Person(){} | |||
function Ninja(){} | |||
Ninja.prototype = new Person(); | |||
// Allows for instanceof to work: | |||
(new Ninja()) instanceof Person | |||
if ( !initializing ) | |||
this.init.apply(this, arguments); | |||
* Super Method | |||
var Person = Class.extend({ | |||
init: function(isDancing){ | |||
this.dancing = isDancing; | |||
} | |||
}); | |||
var Ninja = Person.extend({ | |||
init: function(){ | |||
this._super( false ); | |||
} | |||
}); | |||
var p = new Person(true); | |||
p.dancing; // => true | |||
var n = new Ninja(); | |||
n.dancing; // => false | |||
== 신나는 야구게임 == | |||
* [[숫자야구/김수경]] | |||
Latest revision as of 00:16, 27 March 2026
- JavaScript/2011년스터디
- JavaScript/2011년스터디/3월이전
- JavaScript/2011년스터디/7월이전
- JavaScript/2011년스터디/CanvasPaint
- JavaScript/2011년스터디/JSON-js분석
- JavaScript/2011년스터디/URLHunter
- JavaScript/2011년스터디/김수경
- JavaScript/2011년스터디/박정근
- JavaScript/2011년스터디/서지혜
- JavaScript/2011년스터디/윤종하
JavaScript Source Code
11일
- 2011.html
<html> <head> <title>Javascript</title> <script src="gugu.js" type="text/javascript"></script> <link rel="stylesheet" type="text/css" href="2011.css" /> </head> <body onload="gu();"> //<body onload="s();"> </body> </html>
- gugu.js
function gugu(dan){
for(var i = 1; i <= 9; i++){
document.write(dan + " X " + i + " = " + (dan * i) + "<br/>");
}
}
function gu(){
for(var i = 2; i <= 9; i++){
gugu(i);
document.write("<br/>");
}
}
function g(){
for(var i = 2; i <= 9; i++){
for(var j = 1; j <= 9; j++){
document.write(i + " X " + j + " = " + (i * j) + "<br/>");
}
document.write("<br/>");
}
}
- sum.js
function s(){
var score = {"지혜":{"국어":90, "수학":90},"수경":{"국어":90, "수학":40}, "정근":{"국어":80, "수학":100}};
for(var i in score){
document.write("<" + i + "><br/>");
for(var j in score[i]){
document.write(j + " : " + score[i][j] + "<br/>");
}
}
}
18일
var Person = Class.extend({
init: function(isDancing){
this.dancing = isDancing;
},
dance: function(){
return this.dancing;
}
});
var Ninja = Person.extend({
init: function(){
this._super( false );
},
dance: function(){
// Call the inherited version of dance()
return this._super();
},
swingSword: function(){
return true;
}
});
var p = new Person(true);
p.dance(); // => true
var n = new Ninja();
n.dance(); // => false
n.swingSword(); // => true
// Should all be true
p instanceof Person && p instanceof Class &&
n instanceof Ninja && n instanceof Person && n instanceof Class
- Simple Class Creation and Inheritance
(function(){
var initializing = false, fnTest = /xyz/.test(function(){xyz;}) ? /\b_super\b/ : /.*/;
// The base Class implementation (does nothing)
this.Class = function(){};
// Create a new Class that inherits from this class
Class.extend = function(prop) {
var _super = this.prototype;
// Instantiate a base class (but only create the instance,
// don't run the init constructor)
initializing = true;
var prototype = new this();
initializing = false;
// Copy the properties over onto the new prototype
for (var name in prop) {
// Check if we're overwriting an existing function
prototype[name] = typeof prop[name] == "function" &&
typeof _super[name] == "function" && fnTest.test(prop[name]) ?
(function(name, fn){
return function() {
var tmp = this._super;
// Add a new ._super() method that is the same method
// but on the super-class
this._super = _super[name];
// The method only need to be bound temporarily, so we
// remove it when we're done executing
var ret = fn.apply(this, arguments);
this._super = tmp;
return ret;
};
})(name, prop[name]) :
prop[name];
}
// The dummy class constructor
function Class() {
// All construction is actually done in the init method
if ( !initializing && this.init )
this.init.apply(this, arguments);
}
// Populate our constructed prototype object
Class.prototype = prototype;
// Enforce the constructor to be what we expect
Class.constructor = Class;
// And make this class extendable
Class.extend = arguments.callee;
return Class;
};
})();
- Initialization
function Person(){}
function Ninja(){}
Ninja.prototype = new Person();
// Allows for instanceof to work:
(new Ninja()) instanceof Person
if ( !initializing )
this.init.apply(this, arguments);
- Super Method
var Person = Class.extend({
init: function(isDancing){
this.dancing = isDancing;
}
});
var Ninja = Person.extend({
init: function(){
this._super( false );
}
});
var p = new Person(true);
p.dancing; // => true
var n = new Ninja();
n.dancing; // => false