2019-06-13

面向過程與面向?qū)ο缶幊?/b>

1、面向過程:所有的工作都是現(xiàn)寫現(xiàn)用。

2、面向?qū)ο螅菏且环N編程思想,許多功能事先已經(jīng)編寫好了,在使用時(shí),只需要關(guān)注功能的運(yùn)用,而不需要這個(gè)功能的具體實(shí)現(xiàn)過程。

javascript對象

將相關(guān)的變量和函數(shù)組合成一個(gè)整體,這個(gè)整體叫做對象,對象中的變量叫做屬性,變量中的函數(shù)叫做方法。javascript中的對象類似字典。

創(chuàng)建對象的方法

1、單體

<script type="text/javascript">

var Tom = {

? ? name : 'tom',

? ? age : 18,

? ? showname : function(){

? ? ? ? alert('我的名字叫'+this.name);? ?

? ? },

? ? showage : function(){

? ? ? ? alert('我今年'+this.age+'歲');? ?

? ? }

}

</script>

2、工廠模式

<script type="text/javascript">

function Person(name,age,job){

? ? var o = new Object();

? ? o.name = name;

? ? o.age = age;

? ? o.job = job;

? ? o.showname = function(){

? ? ? ? alert('我的名字叫'+this.name);? ?

? ? };

? ? o.showage = function(){

? ? ? ? alert('我今年'+this.age+'歲');? ?

? ? };

? ? o.showjob = function(){

? ? ? ? alert('我的工作是'+this.job);? ?

? ? };

? ? return o;

}

var tom = Person('tom',18,'程序員');

tom.showname();

</script>

2、構(gòu)造函數(shù)?

<script type="text/javascript">

? ? function Person(name,age,job){? ? ? ? ? ?

? ? ? ? this.name = name;

? ? ? ? this.age = age;

? ? ? ? this.job = job;

? ? ? ? this.showname = function(){

? ? ? ? ? ? alert('我的名字叫'+this.name);? ?

? ? ? ? };

? ? ? ? this.showage = function(){

? ? ? ? ? ? alert('我今年'+this.age+'歲');? ?

? ? ? ? };

? ? ? ? this.showjob = function(){

? ? ? ? ? ? alert('我的工作是'+this.job);? ?

? ? ? ? };

? ? }

? ? var tom = new Person('tom',18,'程序員');

? ? var jack = new Person('jack',19,'銷售');

? ? alert(tom.showjob==jack.showjob);

</script>

3、原型模式?

<script type="text/javascript">

? ? function Person(name,age,job){? ? ? ?

? ? ? ? this.name = name;

? ? ? ? this.age = age;

? ? ? ? this.job = job;

? ? }

? ? Person.prototype.showname = function(){

? ? ? ? alert('我的名字叫'+this.name);? ?

? ? };

? ? Person.prototype.showage = function(){

? ? ? ? alert('我今年'+this.age+'歲');? ?

? ? };

? ? Person.prototype.showjob = function(){

? ? ? ? alert('我的工作是'+this.job);? ?

? ? };

? ? var tom = new Person('tom',18,'程序員');

? ? var jack = new Person('jack',19,'銷售');

? ? alert(tom.showjob==jack.showjob);

</script>

4、繼承?

<script type="text/javascript">

? ? ? ? function fclass(name,age){

? ? ? ? ? ? this.name = name;

? ? ? ? ? ? this.age = age;

? ? ? ? }

? ? ? ? fclass.prototype.showname = function(){

? ? ? ? ? ? alert(this.name);

? ? ? ? }

? ? ? ? fclass.prototype.showage = function(){

? ? ? ? ? ? alert(this.age);

? ? ? ? }

? ? ? ? function sclass(name,age,job)

? ? ? ? {

? ? ? ? ? ? fclass.call(this,name,age);

? ? ? ? ? ? this.job = job;

? ? ? ? }

? ? ? ? sclass.prototype = new fclass();

? ? ? ? sclass.prototype.showjob = function(){

? ? ? ? ? ? alert(this.job);

? ? ? ? }

? ? ? ? var tom = new sclass('tom',19,'全棧工程師');

? ? ? ? tom.showname();

? ? ? ? tom.showage();

? ? ? ? tom.showjob();

? ? </script>

new的作用就相當(dāng)于工廠模式中最開始創(chuàng)建了一個(gè)空對象,最后把對象返回

call和apply的區(qū)別

二者都可以改變當(dāng)前的this,區(qū)別在于apply方法要將參數(shù)放入數(shù)組中再傳參

屬性用call或者apply的方式來繼承

方法繼承:將父類的一個(gè)實(shí)例賦值給子類的原型屬性

新選擇器

1、document.querySlector()????????? 彈出一個(gè)元素

2、document.querySlectorAll()???? 選擇多個(gè)元素

jquery介紹

jQuery是目前使用最廣泛的javascript函數(shù)庫。據(jù)統(tǒng)計(jì),全世界排名前100萬的網(wǎng)站,有46%使用jQuery,遠(yuǎn)遠(yuǎn)超過其他庫。微軟公司甚至把jQuery作為他們的官方庫。?

jQuery的版本分為1.x系列和2.x、3.x系列,1.x系列兼容低版本的瀏覽器,2.x、3.x系列放棄支持低版本瀏覽器,目前使用最多的是1.x系列的。

jquery是一個(gè)函數(shù)庫,一個(gè)js文件,頁面用script標(biāo)簽引入這個(gè)js文件就可以使用。

<script type="text/javascript" src="js/jquery-1.12.2.js"></script>

jquery的口號(hào)和愿望 Write Less, Do More(寫得少,做得多)?

jquery選擇器

? jquery用法思想一

選擇某個(gè)網(wǎng)頁元素,然后對它進(jìn)行某種操作

? jquery選擇器

jquery選擇器可以快速地選擇元素,選擇規(guī)則和css樣式相同,使用length屬性判斷是否選擇成功。

$(document) //選擇整個(gè)文檔對象

$('li') //選擇所有的li元素

$('#myId') //選擇id為myId的網(wǎng)頁元素

$('.myClass') // 選擇class為myClass的元素

$('input[name=first]') // 選擇name屬性等于first的input元素

$('#ul1 li span') //選擇id為為ul1元素下的所有l(wèi)i下的span元素

對選擇集進(jìn)行修飾過濾(類似CSS偽類)?

$('#ul1 li:first') //選擇id為ul1元素下的第一個(gè)li

$('#ul1 li:odd') //選擇id為ul1元素下的li的奇數(shù)行

$('#ul1 li:eq(2)') //選擇id為ul1元素下的第3個(gè)li

$('#ul1 li:gt(2)') // 選擇id為ul1元素下的前三個(gè)之后的li

$('#myForm :input') // 選擇表單中的input元素

$('div:visible') //選擇可見的div元素

對選擇集進(jìn)行函數(shù)過濾?

$('div').has('p'); // 選擇包含p元素的div元素

$('div').not('.myClass'); //選擇class不等于myClass的div元素

$('div').filter('.myClass'); //選擇class等于myClass的div元素

$('div').first(); //選擇第1個(gè)div元素

$('div').eq(5); //選擇第6個(gè)div元素

選擇集轉(zhuǎn)移?

$('div').prev('p'); //選擇div元素前面的第一個(gè)p元素

$('div').prevAll('p'); //選擇div元素前面所有的p元素

$('div').next('p'); //選擇div元素后面的第一個(gè)p元素

$('div').nextAll('p'); //選擇div元素后面所有的p元素

$('div').closest('form'); //選擇離div最近的那個(gè)form父元素

$('div').parent(); //選擇div的父元素

$('div').children(); //選擇div的所有子元素

$('div').siblings(); //選擇div的同級元素

$('div').find('.myClass'); //選擇div內(nèi)的class等于myClass的元素

jQuery加載

alert($);//彈出function (a,b){return new n.fn.init(a,b)}表示JQuery已經(jīng)引進(jìn)來了,這是它的一個(gè)構(gòu)造函數(shù)

JS寫法

window.onload = function(){

var oDiv = document.getElementById('div');

alert(oDiv.innerHTML);//這是一個(gè)div元素

}

jQuery的完整寫法

比上面JS寫法先彈出,因?yàn)閣indow.onload是把頁面元素加載、渲染完才彈出,而ready()是把所有頁面的節(jié)點(diǎn)加載完之后就彈出了,不用等渲染了

$(document).ready(function(){

var $div = $('#div');

alert('jQuery:' + $div.html());//jQuery:這是一個(gè)div元素

})

簡寫方式

$(function(){

var $div = $('#div');//CSS樣式怎么寫,這里就怎么寫

//html()方法相當(dāng)于原生JS的innerHTML

alert($div.html() + 'jQuery');

})

jQuery樣式操作

$(function(){

/*jQuery用同一個(gè)函數(shù)即可以取值、也可以賦值*/

//讀取樣式

alert($('#div1').css('fontSize'));//16px

//設(shè)置(寫入)樣式

$('#div1').css({background:'gold'});

//增加行間樣式

$('#div1').addClass('big');

//減少行間樣式,多個(gè)樣式用空格分開

$('#div1').removeClass('div2 big');

})

click事件

$(function(){

// 給按鈕綁定click事件

$('#btn').click(function(){

//重復(fù)切換sty樣式

$('.box').toggleClass('sty');

})

})

jQuery索引值

$(function(){

$('.list li').click(function(){

// alert(this.innerHTML);//彈出標(biāo)簽中的內(nèi)容

alert($(this).index());//彈出下標(biāo)

})

jQuery做選項(xiàng)卡

$(function(){

$('#box1 #btns input').click(function() {

//失去焦點(diǎn),避免出現(xiàn)默認(rèn)的藍(lán)框

$(this).blur();

//this是原生的對象

// alert(this);//彈出[object HTMLInputElement],說明this就是當(dāng)前點(diǎn)擊的input元素

//jQuery的this對象使用時(shí)要用$()包起來,這樣就可以調(diào)用jQuery的方法了

//給當(dāng)前元素添加選中樣式,為兄弟元素移除選中樣式

$(this).addClass('cur').siblings().removeClass('cur');

//$(this).index()獲取當(dāng)前按鈕所在層級范圍的索引值

//顯示對應(yīng)索引的內(nèi)容區(qū),隱藏其它兄弟內(nèi)容區(qū)

$('#box1 #contents div').eq($(this).index()).addClass('active').siblings().removeClass('active');

});

$('#box2 #btns input').click(function() {

$(this).blur();

$(this).addClass('cur').siblings().removeClass('cur');

$('#box2 #contents div').eq($(this).index()).addClass('active').siblings().removeClass('active');

});

})

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容