這篇文章主要為大家詳細(xì)介紹了javascript的setter與getter方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
以前在寫項目過程一直都沒有使用過Javascript的setter與getter方法,所以對其是一種要懂不懂的概念;今天看書看到這個知識點,還是模模糊糊的,于是就打算研究研究;
Javascript對象的屬性是由名字,值和一組特性構(gòu)成的。那么首先,來了解一下對象的兩種屬性:
數(shù)據(jù)屬性,我們經(jīng)常使用,應(yīng)該很熟悉
訪問器屬性,也稱存取器屬性
何為存取器屬性?就是一組獲取和設(shè)置值的函數(shù)。在ECMAScript5中,屬性值可以用一個或兩個方法設(shè)置,這兩個方法就是getter和setter;因此getter和setter定義的屬性被稱為存取器屬性。
立即學(xué)習(xí)“Java免費學(xué)習(xí)筆記(深入)”;
var o = { get val(){ /*函數(shù)體*/ return ; }, set val(n){ /*函數(shù)體*/ } }
上面的就是一個存取器屬性定義的最簡單的方法,可以看出getter和setter方法其實就是取代function的一個函數(shù)。
var o = { a:3, get val(){ return Math.pow(this.a,2); } } console.log(o.val);//9 o.val = 100; console.log(o.val);//9
getter方法是無參數(shù),并且有返回值的;當(dāng)單獨設(shè)置getter方法時,只能獲取屬性值,無法更改其定義的屬性值的,保證了數(shù)據(jù)的安全性;
var o = { a:3, set val(n){ this.a = n; } } console.log(o.val);//undefined
setter方法是有參數(shù),沒有返回值的;當(dāng)單獨設(shè)置setter方式時,是無法讀取屬性值的;
var o ={ a:3, get val(){ return Math.pow(this.a,n); }, set val(n){ this.a = Math.max(this.a,n); } } console.log(o.a);//3 console.log(o.val);//9 o.val = 10; console.log(o.a);//10 console.log(o.val);//100
通過上面的代碼可以看出,其中this是指其對象(即代碼中的“o”);
var o ={ a:3, get val(){ return Math.pow(this.a,n); }, set val(n){ this.a = Math.max(this.a,n); } } o.val = 10; var foo = Object.create(o); console.log(foo.val);//10 foo.val = 9; console.log(foo.val);//10
上面是我整理給大家的,希望今后會對大家有幫助。
相關(guān)文章:
有關(guān)Vue.js如何實現(xiàn)無限滾動加載
Chrome Firefox 自帶調(diào)試工具調(diào)試(詳細(xì)教程)
以上就是在JavaScript中如何使用setter與getter方法的詳細(xì)內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!
java怎么學(xué)習(xí)?java怎么入門?java在哪學(xué)?java怎么學(xué)才快?不用擔(dān)心,這里為大家提供了java速學(xué)教程(入門到精通),有需要的小伙伴保存下載就能學(xué)習(xí)啦!
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://m.miracleart.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號