原始人、古代人、現代人、対象に重度の患者と完璧主義者はそれぞれJavascriptの対象をどのように使いますか?
4302 ワード
原始人使用定義式
普通の現代人
完璧主義者はプロタイプを使います.
完璧主義者の使い方
現代JavaScriptの開発に備えています.
JavaScript名前空間
JavaScript作成対象
function wannaDie() {
alert(" ," +
" ," +
" ," +
" ……");
}
alert(typeof(wannaDie));
//alert(typeof wannaDie()); //
古代人は変数式を使います.var wannaDie = function() {
alert("hello");
};
alert(typeof(wannaDie));
//alert(typeof wannaDie()); //
私は歌を歌いますvar sing = function() {
alert(" ....");
};
sing();
sing = function() {
alert(" ....");
};
sing();
TMエコーマシンですか?<script type="text/javascript">
function sing() {
alert(" ....");
}
sing();
function sing() {
alert(" ....");
}
sing();
// sing() , javascript , 。
// , 。
</script>
先生はもう一度チャンスをください.<script type="text/javascript">
function sing() {
alert(" ....");
}
sing();
</script>
<script type="text/javascript">
function sing() {
alert(" ....");
}
sing();
</script>
現代人が匿名関数を使う普通の現代人
(function(){
alert(" 。。 。。 。。 !");
})();
ちょっと追求している現代人は少し処理します.window.myApp = window.myApp || {};
window.myApp.someFunction = function(){
//so some work
};
求めている現代人はもっと多く作ります.//
(function(myApp, $, undefined){
//do some work
}(window.myApp = window.myApp || {}, jQuery));
//
window.myApp = (function(myApp, $, undefined){
//do some work
return myApp;
})(window.myApp || {}, jQuery);
使う時はこのようにしてもいいです.MyApp.MyModule.MySubModule.doSomething();
対象重度患者向けモジュールモード(Revealing Module Pattern)<script type="text/javascript">
window.ns1 = (function (ns1, undefined) {
var var1 = "var1";
var var2 = "var2";
var someFunction = function () {
return myVar1 + " " + myVar2;
};
return {
getVar1: function () {
return myVar1;
}, //myVar1 public getter
setVar1: function (val) {
myVar1 = val;
}, //myVar1 public setter
someFunction: someFunction //some function made public
}
})(window.ns1);
alert(ns1);
alert(ns1.var1);
alert(ns1.var2);
alert(typeof(ns1.getVar1));
alert(typeof(ns1.setVar1));
alert(typeof(ns1.someFunction));
</script>
実はこのような方法はまだ完璧ではありません.複数のオブジェクトを作成するには、同じ方法/関数が複数のコピーをするので、これは明らかに無駄です.完璧主義者はプロタイプを使います.
完璧主義者の使い方
var Person = function(firstName, lastName, age){
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
};
Person.prototype.fullName = function(){
return this.firstName + " " + this.lastName;
};
var person = new Person("Justin", "Etheredge");
alert(person.fullName());
alert(person.age)
完璧主義者の息子の使い方(継承&原型チェーン)<script type="text/javascript">
var Person = function(firstName, lastName, age){
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
};
Person.prototype.fullName = function(){
return this.firstName + " " + this.lastName;
};
var Spy = function(firstName, lastName, age){
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
};
Spy.prototype = new Person();
Spy.prototype.spy = function(){
alert("-------");
alert(typeof(this));
alert(this.fullName() + " is spying.");
};
var mySpy = new Spy("Mr.", "Spy", 50);
mySpy.spy();
alert(Spy);
alert(Spy.age);
alert(mySpy);
alert(mySpy.age);
</script>
対象声明の2つの方法を追加します.<script type="text/javascript">
// 1
var person1 = {
name:"Johnson",
age:30,
sex:"male",
hobby:function(){alert("girl!")}
};
// 2
var person2 = function(){
name = "Johnson";
age = 30;
sex = "male";
hobby = function(){
alert("girl!")
};
};
alert(person1);
alert(person2);
</script>
補足読み現代JavaScriptの開発に備えています.
JavaScript名前空間
JavaScript作成対象