成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

JS面向?qū)ο?

xumenger / 586人閱讀

摘要:什么是面向?qū)ο缶幊逃脤?duì)象的思想去寫代碼,就是面向?qū)ο缶幊踢^(guò)程式寫法面向?qū)ο髮懛ㄎ覀円恢倍荚谑褂脤?duì)象數(shù)組時(shí)間面向?qū)ο缶幊痰奶攸c(diǎn)抽象抓住核心問(wèn)題封裝只能通過(guò)對(duì)象來(lái)訪問(wèn)方法繼承從已有對(duì)象上繼承出新的對(duì)象多態(tài)多對(duì)象的不同形態(tài)對(duì)象的組成方法行為操作對(duì)

什么是面向?qū)ο缶幊?/b>

用對(duì)象的思想去寫代碼,就是面向?qū)ο缶幊?/p>

過(guò)程式寫法

面向?qū)ο髮懛?/p>

我們一直都在使用對(duì)象

數(shù)組Array 時(shí)間Date

面向?qū)ο缶幊蹋∣OP)的特點(diǎn)

抽象:抓住核心問(wèn)題

封裝:只能通過(guò)對(duì)象來(lái)訪問(wèn)方法

繼承:從已有對(duì)象上繼承出新的對(duì)象

多態(tài):多對(duì)象的不同形態(tài)

對(duì)象的組成

方法(行為、操作) —— 對(duì)象下面的函數(shù):過(guò)程、動(dòng)態(tài)的

屬性 —— 對(duì)象下面的變量:狀態(tài)、靜態(tài)的

創(chuàng)建第一個(gè)面向?qū)ο蟪绦?/b>
//var obj = {};
var obj = new Object(); //創(chuàng)建了一個(gè)空的對(duì)象
obj.name = "小明"; //屬性
obj.showName = function(){ //方法
    alert(this.name);
}
obj.showName();

為對(duì)象添加屬性和方法

Object對(duì)象

this指向

創(chuàng)建兩個(gè)對(duì)象:重復(fù)代碼過(guò)多

//var obj = {};
var obj = new Object(); //創(chuàng)建了一個(gè)空的對(duì)象
obj.name = "小明"; //屬性
obj.showName = function(){ //方法
    alert(this.name);
}
obj.showName();
var obj2 = new Object(); 
obj2.name = "小強(qiáng)";
obj.showName = function(){
    alert(this.name);
}
obj2.showName();
工廠方式

面向?qū)ο笾械姆庋b函數(shù)

//工廠方式:封裝函數(shù)
function createPerson(name){
    //1. 原料
    var obj = new Object();  
    //2. 加工
    obj.name = name;
    obj.showName = function(){
        alert(this.name);
    };   
    //3. 出廠
    return obj;
}
var p1 = createPerson("小明");
p1.showName();
var p2 = createPerson("小強(qiáng)");
p2.showName();

改成與系統(tǒng)對(duì)象類似的寫法
1、首字母大寫
2、New關(guān)鍵字提取
3、this指向?yàn)樾聞?chuàng)建的對(duì)象

/* 當(dāng)new去調(diào)用一個(gè)函數(shù):這個(gè)時(shí)候函數(shù)中的this就是創(chuàng)建出來(lái)的對(duì)象,而且函數(shù)的返回值直接就是this啦。(這叫做隱式返回) */
// new后面調(diào)用的函數(shù):構(gòu)造函數(shù)
function CreatePerson(name){
    this.name = name;
    this.showName = function(){
        alert(this.name);
    };
    // return obj; 隱式返回,所以這一行不用寫了
}

var p1 = new CreatePerson("小明");
p1.showName();
var p2 = new CreatePerson("小強(qiáng)");
p2.showName();

構(gòu)造函數(shù)
用來(lái)創(chuàng)建對(duì)象的函數(shù),叫做構(gòu)造函數(shù)
存在的問(wèn)題
1、對(duì)象的引用
2.浪費(fèi)內(nèi)存

/* 當(dāng)new去調(diào)用一個(gè)函數(shù):這個(gè)時(shí)候函數(shù)中的this就是創(chuàng)建出來(lái)的對(duì)象,而且函數(shù)的返回值直接就是this啦。(這叫做隱式返回) */

// new后面調(diào)用的函數(shù):構(gòu)造函數(shù)
function CreatePerson(name){
    this.name = name;
    this.showName = function(){
        alert(this.name);
    };
    // return obj; 隱式返回,所以這一行不用寫了
}
var p1 = new CreatePerson("小明");
p1.showName();
var p2 = new CreatePerson("小強(qiáng)");
p2.showName();

//alert(p1.showName == p2.showName); //false
/*
    var a = [1, 2, 3];
    var b = [1, 2, 3];

    alert(a == b); //false;
*/

/*
    var a = 5;
    var b = a;
    b += a;
    alert(b); //8
    alert(a); //5 基本類型:賦值的時(shí)候只是值的復(fù)制
*/

/*
    var a = [1, 2, 3]; 
    var b = a; 
    b.push(4);
    alert(b); //[1, 2, 3, 4]
    alert(a); //[1, 2, 3, 4] 對(duì)象類型:賦值不僅是值的復(fù)制,而且也是引用的傳遞
*/

/*
    var a = [1, 2, 3];
    var b = a;
    b = [1, 2, 3, 4];
    alert(b); //[1, 2, 3, 4]
    alert(a); //[1, 2, 3] 只要賦值就會(huì)在內(nèi)存中重新生成,所以a,b互補(bǔ)影響
*/

/*
    var a = 5;
    var b = 5;
    alert(a == b); //true 基本類型的比較:只要值相同就可以
*/

/*
    var a = [1, 2, 3];
    var b = [1, 2, 3];
    alert(a == b); //false 對(duì)象類型:值和引用都相同才行
*/

/*
    var a = [1, 2, 3];
    var b = a;
    alert(a == b); //true
*/
原型 —— prototype

概念
去改寫對(duì)象下面公用的方法或者屬性,讓公用的方法或者屬性在內(nèi)存中僅存在一份(好處:提高性能)

學(xué)習(xí)原型

類比:原型就是CSS中的class(普通方法就是CSS中的style)

普通方法的優(yōu)先級(jí)比原型要高

原型可以復(fù)用,普通方法不可以復(fù)用

var arr = []; 
arr.number = 10;
Array.prototype.number = 20;
alert(arr.number); //10 普通方法的優(yōu)先級(jí)高于原型
//原型:prototype:要寫在構(gòu)造函數(shù)下面
var arr = [1, 2, 3, 4, 5];
var arr2 = [2, 2, 2, 2, 2];
Array.prototype.sum = function(){
    var result = 0;
    for(var i=0; i

通過(guò)原型改寫工廠方式原則:

相同的屬性和方法可以加在原型上

混合的編程模式

function CreatePerson(name){
    this.name = name; //變化的,不能公用的屬性不能寫在原型上
}
CreatePerson.prototype.showName = function(){
    alert(this.name);
}   

var p1 = new CreatePerson("小明");
var p2 = new CreatePerson("小強(qiáng)");

alert(p1.showName == p2.showName); //true

混合的編程模式

//面向?qū)ο蟮膶懛?function 構(gòu)造函數(shù)(){
    this.屬性
}
構(gòu)造函數(shù).原型.方法 = function(){};

//面向?qū)ο蟮氖褂?var 對(duì)象1 = new 構(gòu)造函數(shù)();
對(duì)象1.方法();

總結(jié)面向?qū)ο髮懛?構(gòu)造函數(shù)加屬性,原型加方法

面向?qū)ο蟮倪x項(xiàng)卡

原則
先寫出普通的寫法,然后改成面向?qū)ο髮懛?/p>

普通方法變型

盡量不要出現(xiàn)函數(shù)嵌套函數(shù)

可以有全局變量

把onload中不是賦值的語(yǔ)句放到多帶帶的函數(shù)中

改成面向?qū)ο?/p>

全局變量就是屬性

函數(shù)就是方法

onload中創(chuàng)建對(duì)象

改this指向問(wèn)題,要盡量讓面向?qū)ο笾械膖his指向?qū)ο?/p>

1、先寫出普通方法




    
    面向?qū)ο蟮倪x項(xiàng)卡
    
    


    
11111
22222
33333

2、普通方法變型




    
    面向?qū)ο蟮倪x項(xiàng)卡
    
    


    
11111
22222
33333

關(guān)于this的指向

oDiv.onclick = function(){
    this: oDiv
};

---

oDiv.onclick = show;
function show(){
    this: oDiv
}

---

oDiv.onclick = function(){
    show();
};
function show(){
    this: window
}

改寫成面向?qū)ο?/strong>




    
    面向?qū)ο骲ianxie
    
    


    
11111
22222
33333

面向?qū)ο蟮膹?fù)用




    
    面向?qū)ο骲ianxie
    
    


    
11111
22222
33333
11111
22222
33333
面向?qū)ο蟮耐献?/b>

注意

Event對(duì)象(event對(duì)象一定要寫到事件函數(shù)里面)

事件函數(shù)中用來(lái)阻止默認(rèn)行為的return false也要寫到事件函數(shù)里面

!DOCTYPE html>


    
    面向?qū)ο缶帉懲献?/title>
    <style>
        #div1 { width: 100px; height: 100px; background: red; position: absolute; }
    </style>
    <script>

    /* 普通拖拽
        window.onload = function(){
            var oDiv = document.getElementById("div1");
            var disX = 0;
            var disY = 0;

            oDiv.onmousedown = function(ev){
                var ev = ev || window.event;

                disX = ev.clientX - oDiv.offsetLeft;
                disY = ev.clientY - oDiv.offsetTop;

                document.onmousemove = function(ev){
                    var ev = ev || window.event;

                    oDiv.style.left = ev.clientX - disX + "px";
                    oDiv.style.top = ev.clientY - disY + "px";
                }

                document.onmouseup = function(){
                    document.onmousemove = null;
                    document.onmouseup = null;
                }

                return false;

            }
        }
    */

    /* 第一步:普通方法變型
    //先變型
        var oDiv = null;
        var disX = 0;
        var disY = 0;

        window.onload = function(){
            oDiv = document.getElementById("div1");
            init();         
        }

        function init(){
            oDiv.onmousedown = fnDown;
        }

        function fnDown(ev){
            var ev = ev || window.event;

                disX = ev.clientX - oDiv.offsetLeft;
                disY = ev.clientY - oDiv.offsetTop;

                document.onmousemove = fnMove;
                document.onmouseup = fnUp;

                return false;
        }

        function fnMove(ev){
            var ev = ev || window.event;

            oDiv.style.left = ev.clientX - disX + "px";
            oDiv.style.top = ev.clientY - disY + "px";
        }

        function fnUp(){
            document.onmousemove = null;
            document.onmouseup = null;
        }
        */

        //改成面向?qū)ο?        window.onload = function(){
            var d1 = new Drag("div1");
            d1.init();          
        }

        function Drag(id){
            this.oDiv = document.getElementById(id);
            this.disX = 0;
            this.dixY = 0;
        }

        Drag.prototype.init = function(){
            var This = this;
            this.oDiv.onmousedown = function(ev){
                var ev = ev || window.event;
                This.fnDown(ev);
                return false;
            };
        }

        Drag.prototype.fnDown = function(ev) {
            var ev = ev || window.event;
            var This = this;

                this.disX = ev.clientX - this.oDiv.offsetLeft;
                this.disY = ev.clientY - this.oDiv.offsetTop;

                document.onmousemove = function(ev){
                    var ev = ev || window.event;
                    This.fnMove(ev);
                };
                document.onmouseup = this.fnUp;         
        }

        Drag.prototype.fnMove = function(ev){
            this.oDiv.style.left = ev.clientX - this.disX + "px";
            this.oDiv.style.top = ev.clientY - this.disY + "px";
        }

        Drag.prototype.fnUp = function(){
            document.onmousemove = null;
            document.onmouseup = null;
        }
    </script>
</head>
<body>
    <div   class="qoyqs8suu2u"   id="div1"></div>
</body>
</html></pre>
<b>本課練習(xí)</b>

<p><p>為數(shù)組對(duì)象添加求和,最大值</p></p>
<p><p>為字符串對(duì)象添加判斷是不是最后一個(gè)字母</p></p>
<p><p>面向?qū)ο蟮倪x項(xiàng)卡</p></p>
<p><p>給選項(xiàng)卡添加一個(gè)自動(dòng)播放的方法</p></p>
<p><p>任意學(xué)過(guò)的效果改寫成面向?qū)ο?/p></p>
<p><p>面向?qū)ο蟮拿嬖囶}</p></p>

<b>高級(jí)面向?qū)ο?/b>
<b>包裝對(duì)象</b>
<p>JS基于原型的程序<br>String Number Boolean</p>
<pre><!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>
    
    



給基本類型添加方法



    
    
    
    



原型鏈

實(shí)例對(duì)象與原型之間的連接,叫做原型鏈

proto (隱式連接)

Object對(duì)象類型是原型鏈的最外層




    
    面向?qū)ο笾械脑玩?/title>
    <style></style>
    <script>
    
        //原型鏈:實(shí)例對(duì)象與原型之間的連接叫作原型鏈
        //_proto_ (隱式連接)
        //原型鏈的最外層是Object.prototype

        function Aaa(){
            
        }

        Aaa.prototype.num = 10;

        var a1 = new Aaa();
        alert(a1.num); //10 a1現(xiàn)在它自己下面找,找不到這個(gè)num,然后又通過(guò)原型鏈到了Aaa.prototype,到它下面去找,最終找到了num

        function Bbb(){
            this.num = 20;
        }

        Bbb.prototype.num = 10;
        var b1 = new Bbb();
        alert(b1.num); //20 簡(jiǎn)單來(lái)講,實(shí)例上的方法的優(yōu)先級(jí)高于原型上的方法;本質(zhì)上來(lái)講,是從b1下面找num直接就找到了,于是就不需要再進(jìn)一步通過(guò)原型鏈去找到Bbb.prototype上的num了。

        function Ccc(){};
        var c1 = new Ccc();
        Object.prototype.num = 30; //彈出30 c1下找不到num;順著原型鏈找到Ccc也找不到num,繼續(xù)順著原型鏈往上找,找到Object.prototype,找到了num
        alert(c1.num);
    </script>
</head>
<body>
</body>
</html></pre>
<b>面向?qū)ο蟮囊恍傩院头椒?/b>
<b>hasOwnProperty()看是不是對(duì)象自身下面的屬性</b>
<pre><!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>面向?qū)ο笾械脑玩?/title>
    <style></style>
    <script>
        //hasOwnProperty: 看是不是對(duì)象自身下面的屬性

        var arr = [];
        arr.num = 10;
        Array.prototype.num2 = 20;

        alert(arr.hasOwnProperty("num")); //true
        alert(arr.hasOwnProperty("num2")); //false
        alert(arr.hasOwnProperty == Object.prototype.hasOwnProperty); //true hasOwnProperty其實(shí)是Object.prototype下面的方法
    </script>
</head>
<body>
</body>
</html></pre>
<b>constructor查看對(duì)象的構(gòu)造函數(shù)</b>

<p><p>每個(gè)原型都會(huì)自動(dòng)添加constructor屬性</p></p>
<p><p>for in 的時(shí)候,有些屬性是找不到的</p></p>
<p><p>避免修改constructor屬性</p></p>

<pre><!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>面向?qū)ο笾械脑玩?/title>
    <style></style>
    <script>
        //constructor: 查看對(duì)象的構(gòu)造函數(shù)

        function Aaa(){

        }

        var a1 = new Aaa();

        alert(a1.constructor); //function Aaa

        var arr = [];
        alert(arr.constructor == Array); //true

        /*
        在寫完一個(gè)構(gòu)造函數(shù)之后
        function Aaa(){}
        程序會(huì)自動(dòng)添加一句話:
        Aaa.prototype.constructor = Aaa; //每一個(gè)函數(shù)都會(huì)有的,都是自動(dòng)生成的
        這時(shí)候new一個(gè)Aaa
        var a1 = new Aaa();
        alert(a1.constructor); //彈出Aaa
        如果手動(dòng)寫一句:
        Aaa.prototype.constructor = Array;
        那么再去彈a1.constructor的話,彈出的就是Array了。

        而hasOwnProperty這個(gè)屬性是添加在Object.prototype下面的,所以每個(gè)對(duì)象下面去查這個(gè)hasOwnProperty也都會(huì)有。但是hasOwnProperty這個(gè)方法不是在具體對(duì)象下面的,而都是沿著原型鏈找到Object.prototype身上找到的。跟constructor是不一樣的。
        */

        function Bbb(){

        }

        Bbb.prototype.name = "小明";
        Bbb.prototype.age = 20;

        var b1 = new Bbb();
        alert(b1.constructor); //function Bbb()

        //下面這種寫法就無(wú)意識(shí)地改變了c1的constructor,因?yàn)閖son直接賦值給了Ccc.prototype,而不是向上面那段代碼是添加操作。那么原本系統(tǒng)自動(dòng)生成的那句話Ccc.prototype.constructor = Ccc這句話就被覆蓋掉了。然后通過(guò)c1.constructor去找的話,其實(shí)找的就是這個(gè)json所對(duì)應(yīng)的constructor了。
        function Ccc(){

        }
        Ccc.prototype = {
            name: "小明",
            age: 20
        }
        var c1 = new Ccc();
        alert(c1.constructor); //function Object

        //為了避免上述問(wèn)題,應(yīng)該注意,用json簡(jiǎn)寫的時(shí)候,要把constructor修正過(guò)來(lái),如下:

        function Ddd(){

        }
        Ddd.prototype = {
            constructor: Ddd, //通過(guò)這一句來(lái)修正一下
            name: "小明",
            age: 20
        }
        var d1 = new Ddd();
        alert(d1.constructor); //Ddd

    </script>
</head>
<body>
</body>
</html></pre>
<p><strong>for in循環(huán),有些屬性找不到</strong></p>
<pre><!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>面向?qū)ο笾械脑玩?/title>
    <style></style>
    <script>
        function Aaa(){

        }
        Aaa.prototype.name = 10;
        Aaa.prototype.constructor = Aaa;
        for (var attr in Aaa.prototype){
            alert(attr); //只能找到自己添加的,系統(tǒng)自動(dòng)生成的比如constructor,for in循環(huán)是找不到的
        }
    </script>
</head>
<body>
</body>
</html></pre>
<b>instanceof運(yùn)算符</b>
<p>對(duì)象與構(gòu)造函數(shù)在原型鏈上是否有關(guān)系<br>可以用來(lái)作類型判斷</p>
<pre><!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>instanceof()
    
    



toString()

object上的方法




    
    toString()
    
    



對(duì)象的繼承 什么是繼承

在原有對(duì)象的基礎(chǔ)上,略作修改,得到一個(gè)新的對(duì)象

不影響原有對(duì)象的功能

如何添加繼承

屬性:call

方法:for in

例子:繼承的拖拽

!DOCTYPE html>


    
    繼承
    
    






    
    繼承
    
    






    
    繼承
    
    



繼承的拖拽



    
    
    
    
    


    
繼承的其他形式

1、類式繼承
利用構(gòu)造函數(shù)(類)繼承的方式
2、原型繼承
借助原型來(lái)實(shí)現(xiàn)對(duì)象繼承對(duì)象
類式繼承




    
    
    
    



原型繼承




    
    原型繼承
    
    



拷貝繼承:通用型的 有new或無(wú)new的時(shí)候都可以

類式繼承:適合通過(guò)new構(gòu)造函數(shù)形式

原型繼承:比較適合無(wú)new的對(duì)象

組件開發(fā)

1、對(duì)象的多種表現(xiàn)形式

提高對(duì)象的復(fù)用性

如何配置參數(shù)和默認(rèn)參數(shù)

例子:拖拽

例子:彈窗

2、什么是組件?

對(duì)面向?qū)ο蟮纳钊霊?yīng)用(UI組件、功能組件)

將配置參數(shù)、方法、事件、三者進(jìn)行分離

3、創(chuàng)建自定義事件

有利于多人協(xié)作開發(fā)代碼

如何去掛載自定義事件與事件函數(shù)

4、例子:基于JQ的選項(xiàng)卡的組件開發(fā)模式
trigger() extend()等方法的使用
5、本課練習(xí)
組件開發(fā)的練習(xí)
http://tangram.baidu.com/magic/

如何配置參數(shù)和默認(rèn)參數(shù)



    
    組件開發(fā)中的參數(shù)問(wèn)題
    


    

拖拽的組件開發(fā)



    
    
    
    
    


    
彈窗的組件開發(fā)



    
    彈窗的組件開發(fā)
    
    


    
    
    

    
    

理解自定義事件



    
    自定義事件
    


    

用原生js實(shí)現(xiàn)自定義事件



    
    自定義事件
    


    
div
span
配置、方法、自定義事件分離

——正規(guī)組件的寫法——基于拖拽的組件進(jìn)行的修改




    
    自定義事件的拖拽組件
    
    
    


    
用JQ實(shí)現(xiàn)選項(xiàng)卡的組件開發(fā)



    
    基于JQ的選項(xiàng)卡組件開發(fā)
    
    
    


    
111111
222222
333333
111111
222222
333333
111111
222222
333333
111111
222222
333333

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/79368.html

相關(guān)文章

  • JS面向對(duì)象之一 【概述】

    摘要:更形象的我們還可以將面向?qū)ο罄斫鉃橐环N宗教信仰。這就導(dǎo)致面向?qū)ο蠼痰某绦騿T們?cè)趯憰r(shí)就很難受。所以為了滿足信仰面向?qū)ο蠼痰男枨笸ㄟ^(guò)構(gòu)造函數(shù)的形式模擬了偽類。這個(gè)套路的核心就是類那么里沒(méi)有類所以其實(shí)是通過(guò)構(gòu)造函數(shù)來(lái)模擬的偽類。 JS面向?qū)ο笾?【概述】 在學(xué)習(xí)JS的面向?qū)ο笾?我們應(yīng)該先自問(wèn)這樣幾個(gè)問(wèn)題: 面向?qū)ο笫鞘裁匆馑? 學(xué)習(xí)面向?qū)ο蟮暮诵氖鞘裁? 為什么要學(xué)習(xí)面向?qū)ο?(它的...

    JohnLui 評(píng)論0 收藏0
  • 體驗(yàn)javascript之美6:如果你覺(jué)得什么都會(huì)了或者不知道js學(xué)什么了看這里-面向對(duì)象編程

    摘要:面向過(guò)程函數(shù)式編程面向?qū)ο缶幊痰诙€(gè)并不是大家理解的那樣,我們先說(shuō)舉個(gè)現(xiàn)實(shí)例子就明白了。多說(shuō)一句函數(shù)是編程是非常強(qiáng)大也是我最喜歡的,以后再說(shuō),我們先說(shuō)面向?qū)ο缶幊獭? 概述 當(dāng)大家已經(jīng)把js的語(yǔ)言基礎(chǔ)理解了,然后能夠?qū)懗鲆恍┖?jiǎn)單的例子了,這個(gè)時(shí)候基本上達(dá)到了一年工作經(jīng)驗(yàn)的水平,而自己能夠獨(dú)立的寫一些小功能,完成一些小效果,或者臨摹修改一些比較復(fù)雜的插件的時(shí)候差不多就是兩年工作經(jīng)驗(yàn)的水平,...

    changfeng1050 評(píng)論0 收藏0
  • JS對(duì)象(1)重新認(rèn)識(shí)面向對(duì)象

    摘要:對(duì)象重新認(rèn)識(shí)面向?qū)ο竺嫦驅(qū)ο髲脑O(shè)計(jì)模式上看,對(duì)象是計(jì)算機(jī)抽象現(xiàn)實(shí)世界的一種方式。除了字面式聲明方式之外,允許通過(guò)構(gòu)造器創(chuàng)建對(duì)象。每個(gè)構(gòu)造器實(shí)際上是一個(gè)函數(shù)對(duì)象該函數(shù)對(duì)象含有一個(gè)屬性用于實(shí)現(xiàn)基于原型的繼承和共享屬性。 title: JS對(duì)象(1)重新認(rèn)識(shí)面向?qū)ο? date: 2016-10-05 tags: JavaScript 0x00 面向?qū)ο?從設(shè)計(jì)模式上看,對(duì)象是...

    superw 評(píng)論0 收藏0
  • 面向對(duì)象的 JavaScript

    摘要:是完全的面向?qū)ο笳Z(yǔ)言,它們通過(guò)類的形式組織函數(shù)和變量,使之不能脫離對(duì)象存在。而在基于原型的面向?qū)ο蠓绞街?,?duì)象則是依靠構(gòu)造器利用原型構(gòu)造出來(lái)的。 JavaScript 函數(shù)式腳本語(yǔ)言特性以及其看似隨意的編寫風(fēng)格,導(dǎo)致長(zhǎng)期以來(lái)人們對(duì)這一門語(yǔ)言的誤解,即認(rèn)為 JavaScript 不是一門面向?qū)ο蟮恼Z(yǔ)言,或者只是部分具備一些面向?qū)ο蟮奶卣?。本文將回歸面向?qū)ο蟊疽?,從?duì)語(yǔ)言感悟的角度闡述為什...

    novo 評(píng)論0 收藏0
  • JS面向對(duì)象一:MVC的面向對(duì)象封裝

    摘要:自己的理解的第一個(gè)參數(shù)就是的值如果沒(méi)用默認(rèn)是那個(gè)調(diào)用函數(shù)的當(dāng)前的對(duì)象在全局作用域中就是被隱藏的所以不寫且在全局作用于調(diào)用函數(shù)的時(shí)候就是可以使用或者自己指定的指向 JS面向?qū)ο笠?MVC的面向?qū)ο蠓庋b MDNjavascript面向?qū)ο?面向?qū)ο?Object-Oriented) showImg(https://segmentfault.com/img/remote/1460000016...

    Scliang 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<