javascriptの一点まとめ


Javascriptオブジェクト指向の特性
(総括自:http://www.cnblogs.com/zhangziqiu/archive/2009/05/26/jQuery-Learn-javascript.html ,ここでは学習ノートとしてのみ)
 
1、クラスを作成する
 
var obj = new Object(); //  new    
 
 
2、属性を作成し、宣言せずに直接に値を賦課する。
obj.property 1="I'm property 1."
 
3、ネスト属性
 var object B=object A;
objectB.other = objectA;
//         ,                    
objectA.name;
objectB.name;
objectB.other.name;
 
4、索引を使う
 
//  objectA         "school.college",         "."  ,  "objectA.school.college"      objectA school     college  .
//                   :
         objectA["school.college"] = "BITI";
         alert(objectA["school.college"]);
 
//          :
        objectA["school.college"] = "BITI";
        var key = "school.college"
        alert(objectA["school.college"]);
        alert(objectA["school" + "." + "college"]);        
        alert(objectA[key]);
 
 
5、JSON形式文法
 
        //JSON
        var objectA = {
            name: "myName",
            age: 19,
            school:
            {
                college: "  ",
                "high school": "  " 
            },
            love:["  ","  ","  "]
        }
 
 利用可能なobject A.school[高揚school]Object A.school.co llege;object A.like[1];後で訪問します。
 
6、静的方法と実例的な方法
 
        function theStaticClass() { }; //     
        theStaticClass.staticMethod = function() { alert("static method") }; //        
        theStaticClass.prototype.instanceMethod = function() { "instance method" }; //        
 静的方法については直接に呼び出すことができます。
 
 
staticClass.staticMethod();
 
ただし、動的方法は直接に起動できません。
staticClass.instanceMethod(); //    ,     .
 
最初のインスタンス化が必要です。
        var instance = new staticClass();//     
        instance.instanceMethod(); //            
 
7、グローバルオブジェクトのwindow属性
ページで作成したクラス
 
<script type="text/javascript">
        var objectA = new Object();
</script>
 
はグローバル変数です。実際にグローバル変数object Aはwindowオブジェクトに作成されていますので、window.object Aで引用できます。
 
8、関数の実現
 
        function myMethod()
        {
            alert("Hello!");
        }

        window.myMethod = function()
        {
            alert("Hello!");
        }

        myMethod = function()
        {
            alert("Hello!");
        }
 
 
9、「this」は全体のwindowを指してもいいし、現在の変数や種類を指してもいいです。
 
        var o1 = { name: "o1 name" };
        window.name = "window name";

        function showName()
        {
            alert(this.name); 
        }        
        
        o1.show = showName;
        window.show = showName;

        showName();//  window name
        o1.show();//  o1 name
        window.show();//  window name
 
 
10、javascriptの中のクローズド
簡単な表現:
クローズドとは、functionの例およびfunctionのインスタンスを実行する際の環境からの変数です。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
</head>
<body>
    <div id="divResult"></div>
    <script type="text/javascript">
        function start()
        {
            var count = 0;
            window.setInterval(function()
            {
                document.getElementById("divResult").innerHTML += count + "<br/>";
                count++;
            }, 3000);
        };
        start();
    </script>
</body>
</html>
 結果は:
0
1
2
3
……
count変数はset Intervalで作成された匿名関数(count++の関数を含む)のクローズドの一部です。