Javascript 學習 筆記六

衣舞晨風發表於2015-12-27

1、javascript 物件導向

<!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>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>無標題文件</title>
    <script type="text/javascript">
        //oDiv.onclick = function () {
        //    alert(this);
        //};
        window.onload = function () {
            var arr = [12, 65, 87];
            //this:當前的方法,屬於誰
            //arr.show = function () {
            //    alert(this);
            //};
            arr.sssss = function () {
                alert('123');
            };
            arr.sssss();
        }
    </script>
</head>

<body>
</body>
</html>

我擦,程式碼竟然可以這麼寫

2、建構函式與原型

<!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>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>無標題文件</title>
    <script type="text/javascript">
        //建構函式
        function Person(name, sex) {
            this.name = name;
            this.sex = sex;
        }
        //原型
        Person.prototype.showName = function () {
            alert(this.name);
        };
        Person.prototype.showSex = function () {
            alert(this.sex);
        };
        var p = new Person('blue', '男');
        p.showName();
        p.showSex();
    </script>
</head>
<body>
</body>
</html>

小注:
每個物件有差異的東東,可以放到建構函式中,通用的可以使用原型

3、原型的優先順序

<!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>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>無標題文件</title>
    <script type="text/javascript">
        Array.prototype.a = 12;
        var arr = [1, 2, 3];
        alert(arr.a);   //12
        arr.a = 5;
        alert(arr.a);   //5
        delete arr.a;
        alert(arr.a);   //12
    </script>
</head>
<body>
</body>
</html>

4、[Javascript中this關鍵字詳解]

(http://blog.csdn.net/jiankunking/article/details/50413767)

5、事件繫結

IE方式

  • attachEvent(事件名稱, 函式),繫結事件處理函式

  • detachEvent(事件名稱, 函式),解除繫結

DOM方式

  • addEventListener(事件名稱,函式, 捕獲)

  • removeEventListener(事件名稱, 函式, 捕獲)

//1.誰
//2.事件
//3.函式
function AddEvent(obj, sEvent, fn)
{
    //IE
    if(obj.attachEvent)
    {
        obj.attachEvent('on'+sEvent, fn);
    }
    else
    {
        obj.addEventListener(sEvent, fn, false);
    }
}

6、繫結和this

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <meta charset="utf-8" />
    <script type="text/javascript">
        window.onload = function () {
            var oBtn = document.getElementById('btn1');
            /*oBtn.onclick=function ()
            {
                alert(this);
            };*/
            //IE    事件繫結        this->window
            /*oBtn.attachEvent('onclick', function (){
                alert(this==window);
            });*/
            //FF
            oBtn.addEventListener('click', function () {
                alert(this);
            }, false);
        };
    </script>
</head>
<body>
    <input id="btn1" type="button" value="aaa" />
</body>
</html>

7、匿名函式

匿名函式繫結事件無法解除繫結
與C #一樣嘛

作者:jiankunking 出處:http://blog.csdn.net/jiankunking

相關文章