深入理解JavaScript系列(24):JavaScript與DOM(下)

介紹上一章我們介紹了JavaScript的基本內容和DOM對象的各個方面,包括如何訪問node節點。本章我們將講解如何通過DOM操作元素並且討論瀏覽器事件模型。本文參考:http://net.tutsplus.com/tutorials/javascript-ajax/javascript-and-the-dom-lesson-2/操作元素上一章節我們提到了DOM節點集合或單個節點的訪問步驟,每個DOM節點都包括一個屬性集合,大多數的屬性都提供為相應的功能提供了抽象。例如,如果有一個帶有ID屬性

深入理解JavaScript系列(26):設計模式之建構函式模式

介紹建構函式大家都很熟悉了,不過如果你是新手,還是有必要來瞭解一下什麼叫建構函式的。建構函式用於建立特定類型的對象——不僅聲明了使用的對象,構 造函數還可以接受參數以便第一次建立對象的時候設定對象的成員值。你可以自訂自己的建構函式,然後在裡面聲明自訂類型對象的屬性或方法。基本用法在JavaScript裡,建構函式通常是認為用來實現執行個體的,JavaScript沒有類的概念,但是有特殊的建構函式。通過new關鍵字來調用

深入理解JavaScript系列(19):求值策略(Evaluation strategy)

介紹本章,我們將講解在ECMAScript向函數function傳遞參數的策略。電腦科學裡對這種策略一般稱為“evaluation

深入理解JavaScript系列(20):《你真懂JavaScript嗎?》答案詳解

介紹昨天發的《大叔手記(19):你真懂JavaScript嗎?》裡面的5個題目,有很多回答,發現強人還是很多的,很多人都全部答對了。今天我們來對這5個題目詳細分析一下,希望對大家有所協助。註:問題來自大名鼎鼎的前端架構師Baranovskiy的文章《So, you think you know JavaScript?》。答案也是來自大名鼎鼎的JS牛人Nicholas C. Zakas的文章《Answering Baranovskiy’s JavaScript

JavaScript中isPrototypeOf函數

JavaScript中isPrototypeOf函數方法是返回一個布爾值,指出對象是否存在於另一個對象的原型鏈中。使用方法:object1.isPrototypeOf(object2)其中object1為必選項,一個對象的執行個體。object2為必選項,另一個對象,將要檢查其原型鏈。如果 object2 的 原型鏈中包含object1,那麼JavaScript中isPrototypeOf函數方法返回 true。原型鏈可以用來在同一個物件類型的不同執行個體之間共用功能。如果 object2

深入理解JavaScript系列(22):S.O.L.I.D五大原則之依賴倒置原則DIP

前言本章我們要講解的是S.O.L.I.D五大原則JavaScript語言實現的第5篇,依賴倒置原則LSP(The Dependency Inversion Principle )。英文原文:http://freshbrewedcode.com/derekgreer/2012/01/22/solid-javascript-the-dependency-inversion-principle/依賴倒置原則依賴倒置原則的描述是:A. High-level modules should not

深入理解JavaScript系列(27):設計模式之建造者模式

介紹在軟體系統中,有時候面臨著“一個複雜物件”的建立工作,其通常由各個部分的子物件用一定的演算法構成;由於需求的變化,這個複雜物件的各個部分經常 面臨著劇烈的變化,但是將它們組合在一起的演算法確相對穩定。如何應對這種變化?如何提供一種“封裝機制”來隔離出“複雜物件的各個部分”的變化,從而保持

深入理解JavaScript系列(25):設計模式之單例模式

介紹從本章開始,我們會逐步介紹在JavaScript裡使用的各種設計模式實現,在這裡我不會過多地介紹模式本身的理論,而只會關注實現。OK,正式開始。在傳統開發工程師眼裡,單例就是保證一個類只有一個執行個體,實現的方法一般是先判斷執行個體存在與否,如果存在直接返回,如果不存在就建立了再返回,這就

深入理解JavaScript系列(29):設計模式之裝飾者模式

介紹裝飾者提供比繼承更有彈性的替代方案。

深入理解JavaScript系列(31):設計模式之代理模式

介紹代理,顧名思義就是協助別人做事,GoF對代理模式的定義如下:代理模式(Proxy),為其他對象提供一種代理以控制對這個對象的訪問。代理模式使得代理對象控制具體對象的引用。代理幾乎可以是任何對象:檔案,資源,記憶體中的對象,或者是一些難以複製的東西。本文我們來舉一個簡單的例子,假如dudu要送優酪乳小妹玫瑰花,卻不知道她的連絡方式或者不好意思,想委託大叔去送這些玫瑰,那大叔就是個代理(其實挺好的,可以扣幾朵給媳婦),那我們如何來做呢?// 先聲明美女對象var girl = function

你真懂JavaScript嗎?

介紹大叔整理的《深入理解JavaScript系列》已經快20篇了,不知道大家看的如何了?

深入理解JavaScript系列(21):S.O.L.I.D五大原則之介面隔離原則ISP

前言本章我們要講解的是S.O.L.I.D五大原則JavaScript語言實現的第4篇,介面隔離原則ISP(The Interface Segregation

深入理解JavaScript系列(28):設計模式之原廠模式

介紹與建立型模式類似,原廠模式建立對象(視為工廠裡的產品)時無需指定建立對象的具體類。原廠模式定義一個用於建立對象的介面,這個介面由子類決定執行個體化哪一個類。該模式使一個類的執行個體化延遲到了子類。而子類可以重寫介面方法以便建立的時候指定自己的物件類型。這個模式十分有用,尤其是建立對象的流程賦值的時候,比如依賴於很多設定檔案等。並且,你會經常在程式裡看到Factory 方法,用於讓子類類定義需要建立的物件類型。本文下面這個例子中,是應用了Factory

深入理解JavaScript系列(30):設計模式之面板模式

深入理解JavaScript系列(30):設計模式之面板模式 2012-02-28 08:55 by 湯姆大叔, 1801 visits, 收藏,

深入理解JavaScript系列(35):設計模式之迭代器模式

介紹迭代器模式(Iterator):提供一種方法順序一個彙總對象中各個元素,而又不暴露該對象內部表示。迭代器的幾個特點是:訪問一個彙總對象的內容而無需暴露它的內部表示。為遍曆不同的集合結構提供一個統一的介面,從而支援同樣的演算法在不同的集合結構上進行操作。遍曆的同時更改迭代器所在的集合結構可能會導致問題(比如C#的foreach裡不允許修改item)。本文一般的迭代,我們至少要有2個方法,hasNext()和Next(),這樣才做做到遍曆所有對象,我們先給出一個例子:var agg =

深入理解JavaScript系列(33):設計模式之策略模式

介紹策略模式定義了演算法家族,分別封裝起來,讓他們之間可以互相替換,此模式讓演算法的變化不會影響到使用演算法的客戶。本文在理解策略模式之前,我們先來一個例子,一般情況下,如果我們要做資料合法性驗證,很多時候都是按照swith語句來判斷,但是這就帶來幾個問題,首先如果增加需求的話,我們還要再次修改這段代碼以增加邏輯,而且在進行單元測試的時候也會越來越複雜,代碼如下: validator = { validate: function (value, type) {

深入理解JavaScript系列(32):設計模式之觀察者模式

介紹觀察者模式又叫發布訂閱模式(Publish/Subscribe),它定義了一種一對多的關係,讓多個觀察者對象同時監聽某一個主題對象,這個主題對象的狀態發生變化時就會通知所有的觀察者對象,使得它們能夠自動更新自己。使用觀察者模式的好處:支援簡單的廣播通訊,自動通知所有已經訂閱過的對象。頁面載入後目標對象很容易與觀察者存在一種動態關聯,增加了靈活性。目標對象與觀察者之間的抽象耦合關係能夠單獨擴充以及重用。本文(版本一)JS裡對觀察者模式的實現是通過回調來實現的,我們來先定義一個pubsub對象,

深入理解JavaScript系列(34):設計模式之命令模式

介紹命令模式(Command)的定義是:用於將一個請求封裝成一個對象,從而使你可用不同的請求對客戶進行參數化;對請求排隊或者記錄請求日誌,以及 執行可撤銷的操作。也就是說改模式旨在將函數的調用、請求和操作封裝成一個單一的對象,然後對這個對象進行一系列的處理。此外,可以通過調用實現具體函數 的對象來解耦命令對象與接收對象。本文我們來通過車輛購買程式來展示這個模式,首先定義車輛購買的具體操作類:$(function () {var CarManager = {// 請求資訊

W3C Selector API將為JavaScript開發注入新活力

今天,向大家介紹DOM指令碼編程領域一項令人激動的進步——W3C Selector API。迄今為止,在使用DOM2級API的前提下,要想從DOM中取得HTML元素,只能使用document.getElementById,或者使用document.getElementsByTagName然後再手工編碼進行篩選。隨著CSS的普及,JavaScript開發人員不斷提到一個顯而易見的問題:“為什麼瀏覽器不能提供一種快捷方法,用來選擇與CSS選擇符匹配的HTML元素呢?”於是,上述Selector

javascript的記憶體配置

瞭解javascript的人都知道資料的基本類型按大的分類有兩種:原始值和引用值  在研習演算法的時候會過多的和記憶體打交道;理解棧和堆的定義是很重要的,演算法就是為了能夠獲得最大的效率  任何語言都是如此,javascript也不例外;在javascript中,我在把變數類型分為原始類型和參考型別。原始類型是放在棧即記憶體中,而參考型別這是放在堆中。在ECMAscript中,也是這麼定義的。  棧  主要作用表現為一種資料結構,是只能在某一端插入和刪除的特殊線性表。它按照後進先出的原則儲存資料

總頁數: 3271 1 .... 396 397 398 399 400 .... 3271 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.