摘要:和的定義是指多少時間之后將回調函數(shù)加入到的執(zhí)行隊列之中回調函數(shù)是否立即執(zhí)行取決于當前的執(zhí)行隊列是否空閑。比較好的例子如下回調函數(shù)執(zhí)行其他操作假如內部的執(zhí)行時間為那么的回調函數(shù)至少要等待才執(zhí)行。
1、惰性加載函數(shù) (判斷各個瀏覽器中是否支持某個屬性)
function addEvent(elem, type, handler){ if(elem.addEventListener){ return function(elem, type, handler){ elem.addEventListener(type, handler, false); } }else if(elem.attachEvent){ return function(elem, type, handler){ elem.attachEvent("on"+type, handler); } } }
這樣書寫代碼,函數(shù)只會在第一次執(zhí)行的時候去做檢查,以后每一次都自動執(zhí)行確定的函數(shù)操作。
2、函數(shù)綁定和函數(shù)柯里化
函數(shù)綁定可以讓函數(shù)在指定的環(huán)境中執(zhí)行某一段代碼;函數(shù)柯里化可以讓函數(shù)在任何情況下傳遞任何數(shù)量的參數(shù)去執(zhí)行。
函數(shù)綁定
function bind(fn, context, args){ return function(args){ fn.call(context, args); } }
函數(shù)柯里化
function curry(fn){ var args = Array.prototype.slice.call(arguments, 1); return function(){ var innerArgs = Array.prototype.slice.call(arguments); var finalArgs = args.concat(innerArgs); return fn.apply(null, finalArgs); }; }
函數(shù)柯里化主要解決的問題是,已有的接口不適合我們當前的操作環(huán)境,需要對已有的接口進行相應的轉換才可以使用。
ECMAScript 5允許通過以下幾種方式來創(chuàng)建防篡改對象。
?不可擴展的對象,不允許給對象添加新的屬性或方法。
?密封的對象,也是不可擴展的對象,不允許刪除已有的屬性和方法。
?凍結的對象,也是密封的對象,不允許重寫對象的成員。
setTimeout和setInterval
setTimeout的定義是指多少時間之后將回調函數(shù)加入到js的執(zhí)行隊列之中;回調函數(shù)是否立即執(zhí)行取決于當前的執(zhí)行隊列是否空閑。比較好的例子如下:
elem.on("click", function(event){ setTimeout(function(){ //回調函數(shù) }, 400); //執(zhí)行其他click操作 })
假如click內部的執(zhí)行時間為500,那么setTimeout的回調函數(shù)至少要等待500ms才執(zhí)行。
setTnterval是重復定時器。它只允許當前js執(zhí)行隊列中有一個相同的回調函數(shù)在執(zhí)行,比如說時間間隔為200ms,但是回調函數(shù)的執(zhí)行時間為404,那么當?shù)诙€回調函數(shù)要加入到執(zhí)行隊列中時,發(fā)現(xiàn)第一個回調函數(shù)在執(zhí)行,那么第二個回調函數(shù)不會加入到執(zhí)行隊列中。
自定義事件
具體實現(xiàn)方式:每一個綁定自定義事件時,給每一個事件類型加對應的回調函數(shù)數(shù)組;每一次觸發(fā)自定義事件時,將對應的回調函數(shù)數(shù)組里的回調函數(shù)挨個執(zhí)行一次。
拖拽
使用的事件類型未mouseenter、mousemove、mouseleave事件。需要考慮offsetX和offsetY的值。可以加入自定義事件來拓展("dragstart"、"drag"、"dragend")。
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://systransis.cn/yun/85774.html
摘要:然而,雖然先生對無所不知,被譽為世界的愛因斯坦,但他的語言精粹并不適合初學者學習。即便如此,在后面我還是會建議把當做補充的學習資源。但目前為止,依然是學習編程的好幫手。周正則表達式,對象,事件,閱讀權威指南第,,,章。 既然你找到這篇文章來,說明你是真心想學好JavaScript的。你沒有想錯,當今如果要開發(fā)現(xiàn)代網(wǎng)站或web應用(包括互聯(lián)網(wǎng)創(chuàng)業(yè)),都要學會JavaScript。而面對泛...
摘要:題外話最近在看高級程序設計這本書,面對著多頁的厚書籍,心里有點壓力,所以我決定梳理一下。。全局環(huán)境的關閉是頁面關閉或者瀏覽器關閉,而局部環(huán)境的關閉是指函數(shù)結束。數(shù)值范圍最大和最小的范圍是超出范圍的數(shù)字如何表示是一個特殊的值。 題外話 最近在看《JavaScript高級程序設計》這本書,面對著700多頁的厚書籍,心里有點壓力,所以我決定梳理一下。。探究一下到底怎么讀這本書。本書的內容好像...
摘要:題外話最近在看高級程序設計這本書,面對著多頁的厚書籍,心里有點壓力,所以我決定梳理一下。。全局環(huán)境的關閉是頁面關閉或者瀏覽器關閉,而局部環(huán)境的關閉是指函數(shù)結束。數(shù)值范圍最大和最小的范圍是超出范圍的數(shù)字如何表示是一個特殊的值。 題外話 最近在看《JavaScript高級程序設計》這本書,面對著700多頁的厚書籍,心里有點壓力,所以我決定梳理一下。。探究一下到底怎么讀這本書。本書的內容好像...
摘要:題外話最近在看高級程序設計這本書,面對著多頁的厚書籍,心里有點壓力,所以我決定梳理一下。。全局環(huán)境的關閉是頁面關閉或者瀏覽器關閉,而局部環(huán)境的關閉是指函數(shù)結束。數(shù)值范圍最大和最小的范圍是超出范圍的數(shù)字如何表示是一個特殊的值。 題外話 最近在看《JavaScript高級程序設計》這本書,面對著700多頁的厚書籍,心里有點壓力,所以我決定梳理一下。。探究一下到底怎么讀這本書。本書的內容好像...
摘要:原文鏈接恰當?shù)貙W習適合第一次編程和非的程序員持續(xù)時間到周前提無需編程經(jīng)驗繼續(xù)下面的課程。如果你沒有足夠的時間在周內完成全部的章節(jié),學習時間盡力不要超過周。你還不是一個絕地武士,必須持續(xù)使用你最新學到的知識和技能,盡可能地經(jīng)常持續(xù)學習和提高。 原文鏈接:How to Learn JavaScript Properly 恰當?shù)貙W習 JavaScript (適合第一次編程和非 JavaSc...
閱讀 1210·2021-11-10 11:35
閱讀 2951·2021-09-24 10:35
閱讀 2975·2021-09-22 15:38
閱讀 2815·2019-08-30 15:43
閱讀 1349·2019-08-29 18:39
閱讀 2592·2019-08-29 15:22
閱讀 2802·2019-08-28 18:17
閱讀 619·2019-08-26 13:37