摘要:看下面一個例子優點使用構造器函數的好處在于,它可以在創建對象時接收一些參數。按照慣例,構造函數的函數名應始終以一個大寫字母開頭,以區分普通函數。返回該對象的源代碼。使您有能力向對象添加屬性和方法。
基本概念
ECMA關于對象的定義是:”無序屬性的集合,其屬性可以包含基本值、對象或者函數。“對象的每個屬性或方法都有一個名字,而每個名字都映射到一個值。
類在現實生活中,相似的對象之間往往都有一些共同的組成特征。類,實際上是對象的設計藍圖或者制作配方。我們能基于相同的類創建出許多不同的對象,這些對象又會含有各自的屬性和方法。
封裝封裝主要用于闡述對象中所包含(或封裝的內容),它通常由兩部分組成:
相關的數據(用于存儲屬性)
基于這些數據所能做的事(所能調用的方法)
創建對象我們可以通過對象直接量、new關鍵字和object.create()函數來創建。
對象直接量創建對象最簡單的方法就是在js中使用對象直接量,它是由若干名/值對組成的映射表,名/值對中間用冒號分隔,多個名/值對用逗號分隔。整個映射表用花括號({})括起來。
var empty = {};//沒有任何屬性的對象 var fruits = {apple:big , orange:yellow}; var company = { CEO : "Tim Cook",//屬性名字里有空格,必須用字符串表示 Designer:"Ive"; "for":"all audiences",//"for"是保留字,必須用引號 employees:{ firstname:"David", //這里的屬性名都沒有引號 lastname:"fill" //這個屬性的值是一個對象 } };
對象里還可以嵌套對象(company里嵌套了employees對象)
new關鍵字創建對象關鍵字new后面跟隨一個函數調用,這個函數稱為構造函數(constructor),javascript語言核心的原始類型都包含內置的構造函數。
js原型->參照:javascript學習總結(五)原型和原型鏈詳解
工廠模式由于ECMAScript中無法創建類,因此,開發人員發明了一種函數,用函數來封裝以特定接口創建對象的細節:
什么時候使用工廠模式?
以下幾種情景下工廠模式特別有用:
對象的構建十分復雜 需要依賴具體環境創建不同實例 處理大量具有相同屬性的小對象元素、屬性和方法
說到數組,我們常說其中包含的是元素,而當說到對象的時候,我們常會說其中包含的是屬性。另外,對象的屬性也可以是一個函數,因為函數本身也是一種數據,在這種情況下,我們會稱該屬性為方法:
調用對象方法
注:
1. 盡量使用點號表示法來訪問對象的屬性和方法。 2. 不要在對象中使用帶引號的屬性標示。構造器函數
另外,我們還可以使用構造器函數的方式來創建對象。看下面一個例子:
優點
使用構造器函數的好處在于,它可以在創建對象時接收一些參數。按照慣例,構造函數的函數名應始終以一個大寫字母開頭,以區分普通函數。
區別構造函數與普通函數的區別在于調用的方式不同,任何函數,只要通過new操作符來調用,那它就可以作為構造函數。
缺點使用構造函數的主要問題是,每個方法都要在每個實例上重新創建一遍。
擴展閱讀:javascript學習總結(五)原型和原型鏈詳解
全局對象事實上,程序所在的宿主環境一般都會為其提供一個全局對象,而所謂的全局變量其實都只不過是該對象的屬性罷了。
例如,當程序所在的宿主環境是web瀏覽器時,它所提供的全局對象就是window了。
內建對象內建對象大致分為三組:
數據封裝類對象——包括Object、Array、Boolean、Number和String。這些對象代表著javascript中不同的數據類型,并且都擁有各自不同的typeof返回值,以及undefined和null狀態
工具類對象——包括Math、Date、RegExp等用于提供遍歷的對象
錯誤類對象——包括一般性錯誤對象及其它各種更特殊的錯誤類對象
Object是js中所有對象的父級對象,這意味著我們創建的所有對象都繼承于此。
所謂的空對象實際上并不是完全無用的,它還是包含了一些屬性和方法的:
返回構造器函數的構造器屬性
返回對象描述字符串的toString()方法
返回對象單值描述信息的valueOf()方法
例如:
var o = new Object(); o.toString();//[object Object]Array
Array()是一個用來構建數組的內建構造器函數。數組主要由如下三種創建方式:
array = new Array() array = new Array([size]) array = new Array(element0, element1, ..., elementN)
Array 對象方法 方法 描述 concat() 連接兩個或更多的數組,并返回結果。 join() 把數組的所有元素放入一個字符串。元素通過指定的分隔符進行分隔。 pop() 刪除并返回數組的最后一個元素 push() 向數組的末尾添加一個或更多元素,并返回新的長度。 reverse() 顛倒數組中元素的順序。 shift() 刪除并返回數組的第一個元素 slice() 從某個已有的數組返回選定的元素 sort() 對數組的元素進行排序 splice() 刪除元素,并向數組添加新元素。 toSource() 返回該對象的源代碼。 toString() 把數組轉換為字符串,并返回結果。 toLocaleString() 把數組轉換為本地數組,并返回結果。 unshift() 向數組的開頭添加一個或更多元素,并返回新的長度。 valueOf() 返回數組對象的原始值
concat()方法:合并數組
[1,2]concat([3,4],[5,6]);//[1,2,3,4,5,6]
join()方法:
pop()方法:移除數組最后一個元素,并將其返回
shift()方法:刪除并返回數組的第一個元素。
slice(start,end)方法:截取數組的某一部分,不會對原數組進行任何修改
splice(start,delete_count,i1,i2…)方法:刪除數組元素的同時添加新的元素。i1,i2為要插入的新元素
Array對象屬性 屬性 描述 constructor 返回對創建此對象的數組函數的引用。 length 設置或返回數組中元素的數目。 prototype 使您有能力向對象添加屬性和方法。DOM和BOM
window對象是BOM的頂層(核心)對象,所有對象都是通過它延伸出來的,也可以稱為window的子對象
有關BOM和DOM的討論,詳見我這篇文章:javascript學習總結(三)BOM和DOM詳解
函數有關函數部分的討論,詳見我這篇文章:javascript學習總結(四)function函數部分
這里討論下幾個js的內建函數:
parseInt() 函數可解析一個字符串,并返回一個整數。
parseInt(string, radix)
radix:進制基數,其默認值是10(即十進制)。
parseInt("10e+3");//10 parseInt("FF");//NaN parseInt("FF",16)//255
parseFloat():將接受的參數轉換成浮點值并返回。
parseFloat("123.456t");//123.456
isNaN():該函數是“is Not a Number”的縮寫,用于判斷其參數是否是一個有效數字,如果是就返回true,否則返回false。
補充:
自執行函數:保證全局命名空間不被污染的模式。通過把代碼裝在一個匿名函數中并立刻自行調用。如此一來,該函數中的所有變量都是局部的(假設使用了var關鍵字)。
(function(){ //code })();//最后一個圓括號用于執行
有關這部分,也可參加我的另一篇文章:詳解js閉包
JSON詳見:javascript學習總結(六)數據類型和JSON格式
style對象style.display = "";是清除`display`樣式,`display`將使用默認值(塊元素會變成block,內聯元素會變成inline) style.display="none"; 中“none”是一個值,表示元素將隱藏
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/87635.html
摘要:理解的函數基礎要搞好深入淺出原型使用原型模型,雖然這經常被當作缺點提及,但是只要善于運用,其實基于原型的繼承模型比傳統的類繼承還要強大。中文指南基本操作指南二繼續熟悉的幾對方法,包括,,。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。 怎樣使用 this 因為本人屬于偽前端,因此文中只看懂了 8 成左右,希望能夠給大家帶來幫助....(據說是阿里的前端妹子寫的) this 的值到底...
摘要:個人前端文章整理從最開始萌生寫文章的想法,到著手開始寫,再到現在已經一年的時間了,由于工作比較忙,更新緩慢,后面還是會繼更新,現將已經寫好的文章整理一個目錄,方便更多的小伙伴去學習。 showImg(https://segmentfault.com/img/remote/1460000017490740?w=1920&h=1080); 個人前端文章整理 從最開始萌生寫文章的想法,到著手...
摘要:一面向對象編程簡介定義,簡稱,是一種程序設計思想。好處維護簡單模塊化是面向對象編程中的一個特征。可擴充性面向對象編程從本質上支持擴充性。 一、面向對象編程簡介 1.定義: Object Oriented Programming,簡稱OOP,是一種程序設計思想。OOP把對象作為程序的基本單元,一個對象包含了數據和操作數據的函數。 2.好處: (1)、維護簡單:模塊化是面向對象編程中的一個...
摘要:我們目前正處于一個新興的區塊鏈開發行業中。,一種在以太坊開發人員中流行的新的簡單編程語言,因為它是用于開發以太坊智能合約的語言。它是全球至少萬開發人員使用的世界上最流行的編程語言之一。以太坊,主要是針對工程師使用進行區塊鏈以太坊開發的詳解。 我們目前正處于一個新興的區塊鏈開發行業中。區塊鏈技術處于初期階段,然而這種顛覆性技術已經成功地風靡全球,并且最近經歷了一場與眾不同的繁榮。由于許多...
閱讀 1347·2021-11-11 16:54
閱讀 2394·2021-09-22 10:51
閱讀 2658·2019-08-30 15:44
閱讀 3210·2019-08-29 17:05
閱讀 1452·2019-08-29 17:01
閱讀 2908·2019-08-29 12:28
閱讀 2475·2019-08-26 13:50
閱讀 1735·2019-08-23 16:47