JavaScript對(duì)象訪問(wèn)器有哪些-創(chuàng)新互聯(lián)

本篇內(nèi)容主要講解“JavaScript對(duì)象訪問(wèn)器有哪些”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“JavaScript對(duì)象訪問(wèn)器有哪些”吧!

創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站制作、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的長(zhǎng)嶺網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

JavaScript訪問(wèn)器(Getter和Setter),ECMAScript 5(2009)介紹了Getter和Setters。 Getters和setter允許您定義對(duì)象訪問(wèn)器(Computed Properties)。

JavaScript Getter(get關(guān)鍵字)

<!DOCTYPE html><html><meta charset="utf-8"><title>js</title><body><h3>JavaScript Getters和Setters</h3><p> Getters和setter允許您通過(guò)方法獲取和設(shè)置屬性。</p><p>此示例使用lang屬性獲取語(yǔ)言屬性的值。</p><p id="demo"></p><script>    // 新建一個(gè)對(duì)象。    var person = {        firstName: "John",        lastName : "Doe",        language : "en",        get lang() {            return this.language;        }    };    // 使用getter顯示來(lái)自對(duì)象的數(shù)據(jù):    document.getElementById("demo").innerHTML = person.lang;</script></body></html>

JavaScript Setter (set關(guān)鍵字)

<!DOCTYPE html><html><meta charset="utf-8"><title>JavaScript Getters和Setters</title><body><h3> JavaScript Getters和Setters </h3><p> Getters和setter允許您通過(guò)方法獲取和設(shè)置屬性。</p><p>此示例使用lang屬性設(shè)置語(yǔ)言屬性的值。</p><p id="demo"></p><script>    // Create an object:    var person = {        firstName: "John",        lastName : "Doe",        language : "NO",        set lang(value) {            this.language = value;        }    };    // Set a property using set:    person.lang = "en";    // Display data from the object:    document.getElementById("demo").innerHTML = person.language;</script></body></html>

使用JavaScript函數(shù)還是Getter?

這兩個(gè)例子之間有什么區(qū)別?

示例1:

var person = {  firstName: "John",  lastName : "Doe",  fullName : function() {    return this.firstName + " " + this.lastName;  }};// 使用方法顯示對(duì)象的數(shù)據(jù):document.getElementById("demo").innerHTML = person.fullName();

示例2:

var person = {  firstName: "John",  lastName : "Doe",  get fullName() {    return this.firstName + " " + this.lastName;  }};// 使用getter顯示來(lái)自對(duì)象的數(shù)據(jù):document.getElementById("demo").innerHTML = person.fullName;

示例1將fullName作為函數(shù)訪問(wèn):person.fullName()。示例2將fullName作為屬性訪問(wèn):person.fullName。第二個(gè)示例提供了更簡(jiǎn)單的語(yǔ)法。

數(shù)據(jù)質(zhì)量

使用getter和setter時(shí),JavaScript可以確保更好的數(shù)據(jù)質(zhì)量。lang在此示例中,使用屬性language以大寫(xiě)形式返回屬性的值:

// 創(chuàng)建一個(gè)對(duì)象:var person = {  firstName: "John",  lastName : "Doe",  language : "en",  get lang() {    return this.language.toUpperCase();  }};// 使用getter顯示來(lái)自對(duì)象的數(shù)據(jù):document.getElementById("demo").innerHTML = person.lang;

lang在此示例中,使用該屬性將大寫(xiě)值存儲(chǔ)在language屬性中:

var person = {  firstName: "John",  lastName : "Doe",  language : "",  set lang(lang) {    this.language = lang.toUpperCase();  }};// 使用setter設(shè)置對(duì)象屬性:person.lang = "en";// 顯示來(lái)自對(duì)象的數(shù)據(jù):document.getElementById("demo").innerHTML = person.language;

為什么使用Getter和Setter?

● 它提供了更簡(jiǎn)單的語(yǔ)法

● 它允許屬性和方法的語(yǔ)法相同

● 它可以確保更好的數(shù)據(jù)質(zhì)量

● 在幕后做事情很有用

<!DOCTYPE html><html><meta charset="utf-8"><title>js</title><body><h3> JavaScript Getters和Setters </h3><p>完美的創(chuàng)建反對(duì)象:</p><p id="demo"></p><script>    var obj = {        counter : 0,        get reset() {            this.counter = 0;        },        get increment() {            this.counter++;        },        get decrement() {            this.counter--;        },        set add(value) {            this.counter += value;        },        set subtract(value) {            this.counter -= value;        }    };    // Play with the counter:    obj.reset;    obj.add = 5;    obj.subtract = 1;    obj.increment;    obj.decrement;    // Display the counter:    document.getElementById("demo").innerHTML = obj.counter;</script></body></html>

Object.defineProperty()

Object.defineProperty()方法還可用于添加Getters和Setter:

// 定義對(duì)象var obj = {counter : 0};// 定義 settersObject.defineProperty(obj, "reset", {  get : function () {this.counter = 0;}});Object.defineProperty(obj, "increment", {  get : function () {this.counter++;}});Object.defineProperty(obj, "decrement", {  get : function () {this.counter--;}});Object.defineProperty(obj, "add", {  set : function (value) {this.counter += value;}});Object.defineProperty(obj, "subtract", {  set : function (value) {this.counter -= value;}});// Play with the counter:obj.reset;obj.add = 5;obj.subtract = 1;obj.increment;obj.decrement;

瀏覽器支持

Internet Explorer 8或更早版本不支持Getters和Setter:

9.0+ 支持

到此,相信大家對(duì)“JavaScript對(duì)象訪問(wèn)器有哪些”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)建站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

新聞標(biāo)題:JavaScript對(duì)象訪問(wèn)器有哪些-創(chuàng)新互聯(lián)
文章URL:http://muchs.cn/article26/csppjg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、響應(yīng)式網(wǎng)站企業(yè)網(wǎng)站制作、網(wǎng)站制作云服務(wù)器、虛擬主機(jī)

廣告

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

成都定制網(wǎng)站建設(shè)