摘要:對(duì)象字面量定義一個(gè)空對(duì)象這里的空指的是其自身屬性為空,對(duì)象繼承了的屬性和方法添加屬性方法完全刪除屬性方法自定義構(gòu)造函數(shù)用操作符調(diào)用構(gòu)造函數(shù)時(shí),函數(shù)內(nèi)部會(huì)發(fā)發(fā)生以下情況創(chuàng)建一個(gè)新對(duì)象,并且引用了該對(duì)象并繼承了該函數(shù)的原型屬性和方法被加入到的引
對(duì)象字面量
//定義一個(gè)空對(duì)象,這里的空指的是其自身屬性為空,dog對(duì)象繼承了Object.prototype的屬性和方法 var dog={} //添加屬性/方法 dog.name="Beijing" dog.getName= function(){ return this.name } //完全刪除屬性/方法 delete dog.name自定義構(gòu)造函數(shù)
用new操作符調(diào)用構(gòu)造函數(shù)時(shí),函數(shù)內(nèi)部會(huì)發(fā)發(fā)生以下情況:
創(chuàng)建一個(gè)新對(duì)象,并且this引用了該對(duì)象并繼承了該函數(shù)的原型
屬性和方法被加入到this的引用中
新創(chuàng)建的對(duì)象由this引用最后隱式的返回this(或顯式的返回其它對(duì)象)
var Person = function (name) { //使用字面量的方法添加一個(gè)新對(duì)象 //var this = {} //向this添加指定的方法和屬性 this.name = name //return this }自調(diào)用構(gòu)造函數(shù)
構(gòu)造函數(shù)的調(diào)用方法為new調(diào)用,但有時(shí)候我們會(huì)忘記用new操作,就會(huì)報(bào)undefinde,為了防止這個(gè)我們可以在構(gòu)造函數(shù)中檢查this是否為構(gòu)造函數(shù)的實(shí)例,如果為否構(gòu)造函數(shù)可以再次調(diào)用自身
function Preson(){ if(!(this instanceof Person)){ return new Person() } //一些操作 } //另一種方法是于arguments.callee進(jìn)行比較 if(!(this instanceof arguments.callee)){ return new arguments.callee() }
每個(gè)函數(shù)內(nèi)部,當(dāng)該函數(shù)被調(diào)用時(shí)就會(huì)創(chuàng)建一個(gè)名為arguments的對(duì)象,該對(duì)象包含傳遞給該函數(shù)的所有參數(shù),arguments對(duì)象有一個(gè)名為callee的函數(shù),該函數(shù)會(huì)指向被調(diào)用的函數(shù),需要注意的是ES5的嚴(yán)格模式不支持callee
檢查數(shù)組性質(zhì)typeof(數(shù)組)會(huì)返回‘Object’,當(dāng)我們需要名確一個(gè)對(duì)象是否為數(shù)組時(shí),這個(gè)方法就不合適了
我們可以
1、instanceof Array
2、ES5定義的Array.isArray()
3、Object.prototype.toString()
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/108446.html
摘要:三種使用構(gòu)造函數(shù)創(chuàng)建對(duì)象的方法和的作用都是在某個(gè)特殊對(duì)象的作用域中調(diào)用函數(shù)。這種方式還支持向構(gòu)造函數(shù)傳遞參數(shù)。叫法上把函數(shù)叫做構(gòu)造函數(shù),其他無區(qū)別適用情境可以在特殊的情況下用來為對(duì)象創(chuàng)建構(gòu)造函數(shù)。 一、工廠模式 工廠模式:使用字面量和object構(gòu)造函數(shù)會(huì)有很多重復(fù)代碼,在此基礎(chǔ)上改進(jìn)showImg(https://segmentfault.com/img/bVbmKxb?w=456&...
摘要:性能訪問字面量和局部變量的速度是最快的,訪問數(shù)組和對(duì)象成員相對(duì)較慢變量標(biāo)識(shí)符解析過程搜索執(zhí)行環(huán)境的作用域鏈,查找同名標(biāo)識(shí)符。建議將全局變量存儲(chǔ)到局部變量,加快讀寫速度。優(yōu)化建議將常用的跨作用域變量存儲(chǔ)到局部變量,然后直接訪問局部變量。 缺陷 這本書是2010年出版的,這本書談性能是有時(shí)效性的,現(xiàn)在馬上就2018年了,這幾年前端發(fā)展的速度是飛快的,書里面還有一些內(nèi)容考慮IE6、7、8的東...
摘要:于是我就先把這本薄的經(jīng)典書語言精粹修訂版豆瓣讀書本書簡(jiǎn)介總共章,除去附錄,才頁,讀完并記錄了一些筆記。讀書筆記還可以分享給別人看。編程語言第版定義了的標(biāo)準(zhǔn)。程序檢查時(shí)丟棄值為函數(shù)的屬性。 之前看到這篇文章,前端網(wǎng)老姚淺談:怎么學(xué)JavaScript?,說到怎么學(xué)習(xí)JavaScript,那就是看書、分析源碼。10本書讀2遍的好處,應(yīng)該大于一本書讀20遍。看書主動(dòng)學(xué)習(xí),看視頻是被動(dòng)學(xué)習(xí)???..
摘要:語言精粹讀書筆記第四章函數(shù)函數(shù)字面量函數(shù)字面量包含個(gè)部分第一部分,保留字第二部分,函數(shù)名,它可以被忽略。這個(gè)超級(jí)延遲綁定使得函數(shù)對(duì)高度復(fù)用。構(gòu)造器調(diào)用模式一個(gè)函數(shù),如果創(chuàng)建的目的就是希望結(jié)合的前綴來調(diào)用,那它就被稱為構(gòu)造器構(gòu)造。 《JavaScript 語言精粹》 讀書筆記 第四章 函數(shù) Functions 函數(shù)字面量 函數(shù)字面量包含4個(gè)部分: 第一部分, 保留字 function...
摘要:局部變量位于作用域鏈的起始位置,因此訪問速度最快全局變量位于作用域鏈的最末端,因此訪問速度最慢。如訪問時(shí)間實(shí)例屬性第一層原型屬性第二層原型屬性在同一個(gè)函數(shù)中沒必要多次讀取同一個(gè)對(duì)象成員,建議第一次查詢到值后就將其存儲(chǔ)在局部變量中。 javascript中有四種基本的數(shù)據(jù)存取位置:字面量、變量、數(shù)組元素、對(duì)象成員。 1.訪問字面量和局部變量的速度最快,訪問數(shù)組元素和對(duì)象成員相對(duì)較慢。 2...
閱讀 893·2023-04-26 03:03
閱讀 2218·2021-10-12 10:12
閱讀 1210·2021-09-24 09:48
閱讀 1659·2021-09-22 15:25
閱讀 3343·2021-09-22 15:15
閱讀 925·2019-08-29 16:21
閱讀 1074·2019-08-28 18:00
閱讀 3435·2019-08-26 13:44