国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JavaScript中Function函數(shù)與Object對象的關(guān)系

2019-11-20 10:59:55
字體:
供稿:網(wǎng)友

Function是javascript里最常用的一個概念,javascript里的function是最容易入手的一個功能,但它也是javascript最難理解最難掌握的一個概念。

今天我們來嘗試理解Function和Object.因為這個里面有些人前期可能會搞糊涂.他們之間到底是什么關(guān)系.當(dāng)然也不除外當(dāng)初的我.

注意:官方定義: 在Javascript中,每一個函數(shù)實際上都是一個函數(shù)對象.

我們先來看最簡單的兩個代碼,也是最容易理解的.

function fn(){}var obj = {}console.log(fn instanceof Function)//trueconsole.log(obj instanceof Object)//trueconsole.log(fn instanceof Object)//trueconsole.log(obj instanceof Function)//false

前面兩個打印的效果,大家都容易理解.后面 fn instanceof Object 是為true.這里也是一樣,從函數(shù)的定義來說: 在javascript中一切函數(shù)實際都是函數(shù)對象. 所以為true就不奇怪了.obj instanceof Function 為false,當(dāng)然不奇怪了.因為他是一個對象,不是函數(shù).

我們再來看一個代碼

console.log(Function instanceof Object); // trueconsole.log(Object instanceof Function); // true

代碼很簡單.運行結(jié)構(gòu)兩個都是為true,為什么呢? 第一個用函數(shù)的定義來說,(javascript中函數(shù)實際也是一個函數(shù)對象),當(dāng)然為true,那第二個呢?對象也是函數(shù)?

Object也是函數(shù).因為Object的結(jié)構(gòu)是function Object(){native code}.

這種形式,很清晰的就是聲明的一個Object函數(shù),當(dāng)然就是函數(shù)了,所以兩個都是為true.

他們兩個Function和Object函數(shù)實現(xiàn)代碼,那當(dāng)然是不一樣了.他們是怎么實現(xiàn)的,那我們就不去詳細琢磨了,如果想琢磨的,就可以了解瀏覽器的相關(guān)知識了.

ps:$(function(){})和$(document).ready(function(){})

document.ready和onload的區(qū)別――JavaScript文檔加載完成事件

頁面加載完成有兩種事件

一是ready,表示文檔結(jié)構(gòu)已經(jīng)加載完成(不包含圖片等非文字媒體文件)

二是onload,指示頁面包含圖片等文件在內(nèi)的所有元素都加載完成。

用jQ的人很多人都是這么開始寫腳本的:

$(function(){// do something});

其實這個就是jq ready()的簡寫,他等價于:

$(document).ready(function(){//do something})//或者下面這個方法,jQuer的默認參數(shù)是:“document”;$().ready(function(){//do something})

這個就是jq ready()的方法就是Dom Ready,他的作用或者意義就是:在DOM加載完成后就可以可以對DOM進行操作。

一般情況先一個頁面響應(yīng)加載的順序是:域名解析-加載html-加載js和css-加載圖片等其他信息。

那么Dom Ready應(yīng)該在“加載js和css”和“加載圖片等其他信息”之間,就可以操作Dom了。

1.window.onload方法

⑴執(zhí)行時機:

在網(wǎng)頁中所有元素(包括元素的所有關(guān)聯(lián)文件)完全加載到瀏覽器后才執(zhí)行,即JavaScript 此時可以訪問網(wǎng)頁中的所有元素。

window.onload=function(){ $(window).load(function(){//編寫代碼 等價于 //編寫代碼} });

⑵多次使用:

JavaScript的onload事件一次只能保存對一個函數(shù)的引用,他會自動用最后面的函數(shù)覆蓋前面的函數(shù)。

function one(){ alert("one");} function two(){ alert("two"); }window.onload=one; window.onload=two; //運行代碼后只有 two 

2.$(document).ready()方法

⑴執(zhí)行時機:在DOM完全就緒時就可以被調(diào)用。(這并不意味著這些元素關(guān)聯(lián)的文件都已經(jīng)下載完畢)

舉個例子:$(document).ready()方法明知要DOM就緒就可以操作了,不需要等待所有圖片下載完畢。

⑵多次使用:

function one(){ alert("one"); } function two(){ alert("two"); } $(document).ready(function(){ one(); }); $(document).ready(function(){ two(); }); //運行代碼后 //先是:one //先是:two
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 沅陵县| 岳普湖县| 聊城市| 晴隆县| 泽普县| 墨竹工卡县| 改则县| 泾阳县| 大田县| 西充县| 珲春市| 鲁甸县| 项城市| 长顺县| 武安市| 泾阳县| 九龙城区| 信阳市| 宝坻区| 昭觉县| 慈溪市| 定襄县| 巫溪县| 偏关县| 云南省| 泊头市| 蕉岭县| 乌兰浩特市| 莱西市| 开化县| 龙泉市| 普宁市| 海兴县| 黔西| 垫江县| 黑河市| 大新县| 德钦县| 屏东市| 霍邱县| 柘城县|