More actions
imported>linflus No edit summary |
(Repair batch-0002 pages from live compare) |
||
| (9 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/>"); | ||
} | } | ||
} | } | ||
| Line 46: | Line 58: | ||
== 18일 == | == 18일 == | ||
* [http://ejohn.org/blog/simple-javascript-inheritance/ Simple JavaScript Inheritance] | |||
var Person = Class.extend({ | var Person = Class.extend({ | ||
init: function(isDancing){ | init: function(isDancing){ | ||
| Line 77: | Line 90: | ||
p instanceof Person && p instanceof Class && | p instanceof Person && p instanceof Class && | ||
n instanceof Ninja && n instanceof Person && n instanceof Class | n instanceof Ninja && n instanceof Person && n instanceof Class | ||
* Simple Class Creation and Inheritance | |||
(function(){ | (function(){ | ||
var initializing = false, fnTest = /xyz/.test(function(){xyz;}) ? /\b_super\b/ : /.*/; | var initializing = false, fnTest = /xyz/.test(function(){xyz;}) ? /\b_super\b/ : /.*/; | ||
| Line 96: | Line 109: | ||
for (var name in prop) { | for (var name in prop) { | ||
// Check if we're overwriting an existing function | // Check if we're overwriting an existing function | ||
prototype | prototype[name] = typeof prop[name] == "function" && | ||
typeof _super | typeof _super[name] == "function" && fnTest.test(prop[name]) ? | ||
(function(name, fn){ | (function(name, fn){ | ||
return function() { | return function() { | ||
| Line 104: | Line 117: | ||
// Add a new ._super() method that is the same method | // Add a new ._super() method that is the same method | ||
// but on the super-class | // but on the super-class | ||
this._super = _super | this._super = _super[name]; | ||
// The method only need to be bound temporarily, so we | // The method only need to be bound temporarily, so we | ||
| Line 113: | Line 126: | ||
return ret; | return ret; | ||
}; | }; | ||
})(name, prop | })(name, prop[name]) : | ||
prop | prop[name]; | ||
} | } | ||
| Line 136: | Line 149: | ||
}; | }; | ||
})(); | })(); | ||
* 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({ | var Person = Class.extend({ | ||
init: function(isDancing){ | init: function(isDancing){ | ||
| Line 154: | Line 176: | ||
n.dancing; // => false | 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