Time of Update: 2017-01-18
我今天做的嘗試是,如何更它更像其他的語言一樣的使用繼承機制,多層繼承和更方面的調用父類的構造。 我希望達到的效果: 複製代碼 代碼如下: function A(){ alert('a'); } function B(){ this.$supClass(); alert('b'); } extend(B,A); function C(){ this.$supClass(); alert('c'); } extend(C,B); var c = new C(); alert( c
Time of Update: 2017-01-18
Object.prototype JavaScript是基於原型繼承的,任何對象都有一個prototype屬性。Object.prototype是所有對象的根,並且不可改變。 複製代碼 代碼如下: Object.prototype=null; alert(Object.prototype);//[object Object] Object與Object.prototype
Time of Update: 2017-01-18
我們建立的每一個函數都有一個prototype(原型)屬性,該屬性是一個對象,包含可以有特定類型的所有執行個體共用的屬性和方法。使用它的好處就在於可以讓所有對象執行個體共用它所包含的屬性和方法,也就是說,不必在建構函式中定義對象的資訊,而是可以將這些資訊,直接添加在原型對象中,如下所示,還是接著改寫前兩篇日誌中的例子: 複製代碼 代碼如下: function Employee() { }; Employee.prototype.Name = "Jim";
Time of Update: 2017-01-18
1、原廠模式抽象了建立具體對象的過程,但是在ECMAScript中無法建立類,所以就使用一種函數來封裝以特定介面建立對象的細節。以一下情況為例, 有一個員工類,有姓名、年齡、職位屬性, 複製代碼 代碼如下:function CreateEmployee(name, age, job) { var Emp = new Object(); Emp.name = name; Emp.age = age; Emp.job = job; Emp.sayName = function () { alert(
Time of Update: 2017-01-18
在JS中充分使用物件導向設計思想,可以極大限度的提升代碼重用、降低模組間的偶合、更好的邏輯分層與並行開發。下面分幾個步驟簡單談下我的理解。 一、資料類型與封裝類 封裝類 …… 類型名 …… 常見值 …… 分類 Number …… number …… 123.123 …… 基礎資料型別 (Elementary Data Type) Boolean …… Boolean …… true、false …… 基礎資料型別 (Elementary Data Type) String …… string …
Time of Update: 2017-01-18
例如: new Boolean(false) 會返回一個對象,該對象有一個 valueOf 方法會返回被封裝的值。這其實完全沒有必要,並且有時還令人困惑。不要使用 new Boolean、 new Number 或 new String。 此外也請避免使用 new Object 和 new Array。可使用 {} 和 [] 來代替。 --------------------------------------------------------------------------------
Time of Update: 2017-01-18
brook引用了UNIX下的pipe概念,輕鬆把所有的處理都串聯起來以共同完成任務。前一個處理的輸出作為後一個處理的輸入來完成參數的傳遞。通過brook你可以以MVC的方式來寫你的javascript程式。 http://hirokidaichi.github.com/brook/ brook 雲棲社區下載brook架構使用namespace庫用於模組的組織。 這裡再次用例子說明一下namespace的使用方法: 複製代碼 代碼如下: // 定義一個sample命名空間
Time of Update: 2017-01-18
今天是最後一個部分,介紹不使用建構函式實現"繼承"。 一、什麼是"非建構函式"的繼承? 比如,現在有一個對象,叫做"中國人"。 複製代碼 代碼如下: var Chinese = { nation:'中國' }; 還有一個對象,叫做"醫生"。 複製代碼 代碼如下: var Doctor ={ career:'醫生' } 請問怎樣才能讓"醫生"去繼承"中國人",也就是說,我怎樣才能產生一個"中國醫生"的對象?
Time of Update: 2017-01-18
今天要介紹的是,如何產生一個"繼承"多個對象的執行個體。 比如,現在有一個"動物"對象的建構函式, 複製代碼 代碼如下: function Animal(){ this.species = "動物"; } 還有一個"貓"對象的建構函式, 複製代碼 代碼如下: function Cat(name,color){ this.name = name; this.color = color; } 怎樣才能使"貓"繼承"動物"呢? 1. 建構函式綁定
Time of Update: 2017-01-18
JavaScript中的prototype概念恰如其分地反映了這個詞的內含,我們不能將其理解為C++的prototype那種預先聲明的概念。 JavaScript
Time of Update: 2017-01-18
要學好JavaScript,有幾個基本概念必須搞清楚:prototype,executing,context,closure。Prototype 在JavaScript語言中,通常使用Prototype來實現OO。在這裡,我們不對JavaScript的OO實現進行過多的探討,著重來看一下JS中對象的記憶體模型。在開始之前,需要先明確以下幾點: 1. JS中,存在以下幾種資料類型:string,number,boolean,object,function(注意:首字母均為小寫)。 2
Time of Update: 2017-01-18
var getXY = function() { // 判斷是否是 IE if (document.documentElement.getBoundingClientRect) { // 注1
Time of Update: 2017-01-18
var patterns = { HYPHEN: /(-[a-z])/i, ROOT_TAG: /^body|html$/i }; var toCamel = function(property) {
Time of Update: 2017-01-18
batch: function(el, method, o, override) { // 讓 el 始終為 HTMLElement
Time of Update: 2017-01-18
Douglas Crockford已經傳授了一個有用的單例模式(singleton pattern)實現此規則,我認為他的模式有益於你基於YUI的那些應用。Douglas叫它模組模式(module pattern)。它是如下工作的:
Time of Update: 2017-01-18
原文地址:http://www.jackslocum.com/blog/2006/08/24/javascript-animations-with-yahoo-ui-made-easy/YUI的動畫類簡直就是一門藝術工作。不像其它的傳統的JS庫,提供了已經“預設好”的直接可啟動並執行效果,相反,它由開發人員做自己喜歡的。在這點,我比較喜歡適當地運行一些動畫和變換效果,越多越好。
Time of Update: 2017-01-18
這兩天有個前同事總在問我Javascript物件導向的東西,所以,索性寫篇文章讓他看去吧,這裡這篇文章主要想從一個整體的角度來說明一下Javascript的物件導向的編程。(成文比較倉促,應該有不準確或是有誤的地方,請大家批評指正) 另,這篇文章主要基於 ECMAScript 5, 旨在介紹新技術。關於相容性的東西,請看最後一節。 初探 我們知道Javascript中的變數定義基本如下: 複製代碼 代碼如下: var name = 'Chen Hao';; var email = 'haoel(
Time of Update: 2017-01-18
同時,我們知道在物件導向的進階語言中,建立包含私人成員的對象是最基本的特性之一,提供屬性和方法對私人成員進行訪問來隱藏內部的細節。雖然JS也是物件導向的,但沒有內部機制可以直接表明一個成員是公有還是私人的。還是那句話,依靠JS的語言靈活性,我們可以建立公用、私人和特權成員,資訊隱藏是我們要實現的目標,而封裝是我們實現這個目標的方法。我們還是從一個樣本來說明:建立一個類來儲存圖書資料,並實現可以在網頁中顯示這些資料。 1.
Time of Update: 2017-01-18
就足以說明介面在物件導向的領域中有多重要。但JS卻不像其他物件導向的進階語言(C#,Java,C++等)擁有內建的介面機制,以確定一組對象和另一組對象包含相似的的特性。所幸的是JS擁有強大的靈活性(我在上文已談過),這使得模仿介面特性又變得非常簡單。那麼到底是介面呢? 介面,為一些具有相似行為的類之間(可能為同一種類型,也可能為不同類型)提供統一的方法定義,使這些類之間能夠很好的實現通訊。 那使用介面到底有哪些好處呢?簡單地說,可提高系統相似模組的重用性,使得不同類的通訊更加穩固。一旦實現介面,
Time of Update: 2017-01-18
1. Javascript最大的特性在於其靈活性。作為一名前端開發人員,既可以採用函數式的編程風格,也可以採用更複雜一點的物件導向的編程風格。不管你採用哪種風格,都可以完成一些非常有用的任務。因而,Javascript是一門面向過程的語言,同時也是一門物件導向的語言,進而可以模仿物件導向語言的編程模式和慣用法。我們用一個例子來說明:啟動和停止動畫。 如果你習慣於函數式的編程風格,代碼會如下: 複製代碼 代碼如下: function startAnimation() { //啟用動畫 }