欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Javascript基之js面向?qū)ο蟮氖纠治?/h1>

這篇文章主要為大家展示了“Javascript基之js面向?qū)ο蟮氖纠治觥保瑑?nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Javascript基之js面向?qū)ο蟮氖纠治觥边@篇文章吧。

創(chuàng)新互聯(lián)建站服務(wù)項(xiàng)目包括右玉網(wǎng)站建設(shè)、右玉網(wǎng)站制作、右玉網(wǎng)頁制作以及右玉網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,右玉網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到右玉省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

Javascript中的對象

什么是對象

我們可以把Javascript中對象理解為一組無序的鍵值對,就好像C#中的Dictionary<string,Object>一樣。Key是屬性的名稱,而value可以為以下3種類型:

  1. 基本值(string, number, boolean, null, undefined)

  2. 對象

  3. 函數(shù)

var o = new Object();
o["name"] = "jesse"; //基本值作為對象屬性
o["location"] = {   //對象作為對象屬性
  "city": "Shanghai",
  "district":"minhang"
};

// 函數(shù) 作為對象屬性
o["sayHello"] = function () {
  alert("Hello, I am "+ this.name + " from " + this.location.city);
}

o.sayHello();

遍歷屬性

在C#中我們是可以用foreach對Dictionary<string,Object>進(jìn)行遍歷的,如果說對象在Javascript中是一組鍵值對的話,那我們?nèi)绾芜M(jìn)行遍歷呢?

for (var p in o) {
  alert('name:'+ p + 
     ' type:' + typeof o[p]
    );
}
// name:name type:string
// name:location type:object
// name:sayHello type:function

上面的這種遍歷方式會把原型中的屬性也包括進(jìn)來,關(guān)于什么是原型,以及如何區(qū)分原型和實(shí)例中的屬性我們下面會講到。

創(chuàng)建對象
其實(shí)在上面我們已經(jīng)創(chuàng)建了一個(gè)對象,并且使用了以下兩種創(chuàng)建對象的方式。

  1. 利用new創(chuàng)建一個(gè)Object的實(shí)例。

  2. 字面量

我們上面的o是用第一種方式創(chuàng)建的,而o中的location屬性則是用字面量的方式創(chuàng)建的。而第一種方式其實(shí)也有一種名字叫做構(gòu)造函數(shù)模式,因?yàn)镺bject實(shí)際上是一個(gè)構(gòu)造函數(shù),為我們產(chǎn)生了一個(gè)Object的實(shí)例。如果對于構(gòu)造函數(shù)這一塊還有不清楚的話,趕緊去看我的第一篇 類型基礎(chǔ)Object與object吧。

除了以上兩種方式以外,我們一些創(chuàng)建對象的方式,我們也來一起看一下:

工廠模式

function createPerson(name, age, job){
  var o = new Object();
  o.name = name;
  o.age = age;
  o.job = job;
  o.sayName = function(){
    alert(this.name);
  };
  return o;
}
var person1 = createPerson('Jesse', 29, 'Software Engineer');
var person2 = createPerson('Carol', 27, 'Designer');

這種模式創(chuàng)建的對象有一個(gè)問題,那就是它在函數(shù)的內(nèi)部為我創(chuàng)建了一個(gè)Object的實(shí)例,這個(gè)實(shí)例跟我們的構(gòu)造函數(shù)createPerson是沒有任何關(guān)系的。

Javascript基之js面向?qū)ο蟮氖纠治?></p><p>因?yàn)槲以趦?nèi)部用new Object()來創(chuàng)建了這個(gè)對象,所以它是Object的實(shí)例。所以如果我們想知道它是具體哪個(gè)function的實(shí)例,那就不可能了。</p><p><strong>構(gòu)造函數(shù)模式</strong></p><p>工廠模式?jīng)]有解決對象識別的問題,但是我們可以想一下,Object()實(shí)際上也是一個(gè)函數(shù),只不過當(dāng)我在它前面加上一個(gè)new的時(shí)候,它就變成了一個(gè)構(gòu)造函數(shù)為我們產(chǎn)生一個(gè)Object的實(shí)例。那么我同樣也可以在其它函數(shù)前面加上new這樣就可以產(chǎn)生這個(gè)函數(shù)的實(shí)例了,這就是所謂的構(gòu)造函數(shù)模式。</p><pre>function Person(name, age, job){
  this.name = name;
  this.age = age;
  this.job = job;
  this.sayName = function(){
    alert(this.name);
  };
}

var p1 = new Person('Jesse', 18, 'coder');
alert(p1 instanceof Person); // true</pre><p><strong>詳解this</strong><br/>this在Javascript中也可以算是一個(gè)很神奇對象,沒錯(cuò)this是一個(gè)對象。我們在上一篇作用域和作用域鏈中講到了變量對象,變量對象決定了在當(dāng)前的執(zhí)行環(huán)境中有哪些屬性和函數(shù)是可以被訪問到的,從某種程度上來說我們就可以把this看作是這個(gè)變量對象。我們之前提到了最大的執(zhí)行環(huán)境是全局執(zhí)行環(huán)境,而window就是全局執(zhí)行環(huán)境中的變量對象,那么我們在全局環(huán)境中this===window是會返回true的。</p><p><img src=Javascript基之js面向?qū)ο蟮氖纠治?/a>
標(biāo)題來源:http://chinadenli.net/article48/geoiep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)軟件開發(fā)網(wǎng)站設(shè)計(jì)公司手機(jī)網(wǎng)站建設(shè)網(wǎng)站排名虛擬主機(jī)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化