memo
JavaScriptのprototypeベースでクラスのようなものを作る方法。
function object(o) {
var F = function () {};
F.prototype = o.prototype;
return new F();
}
function SomeClass () {
// class constructor;
console.log("SomeClass");
}
SomeClass.prototype = {
prop1: "value1",
prop2: "value2",
method1: function () {
console.log(this.prop1 +"/"+ this.prop2);
}
}
var myCar = object(Car); //"SomeClass"
myCar.prototype = {
prop1: "changed value1"
}
myCar.method1(); //"changed value1/value2"
JavaScriptの関数型言語っぽいアプローチ
var sum = (function (x,y,z) {
return (x+y+z);
})(1,2,3)
console.log(sum); //6
それの応用。
jQuery.noConflict()をしつつ$を使う方法。
//既存の$を上書きしない(prototype.jsとの共存)
jQuery.noConflict();
//関数型のアプローチでjQueryを範囲限定で$と呼ぶ
(function($){
/**
* @function lorem
* jQuery plugin
*/
$.fn.lorem = function () {
this.html("Lorem Ipusum");
return this;
}
//ready
$(function () {
//つくったプラグインloremを使ってみる
$("p")
.lorem()
.css("color","#ff0000")
.end();
})
})(jQuery);