JS面向?qū)ο?/h1>

一、對對象屬性的操作(defineProperties)

  • Object.defineProperty () 和Object.defineProperties()方法會直接在一個對象上定義一個新屬性烫沙,或者修改一個對象的現(xiàn)有屬性窜管,并返回此對象
  • Object.defineProperty(obj, prop, descriptor)接受三個參數(shù)拨拓,返回傳遞給函數(shù)的對象(obj)捏检,因此不是一個純函數(shù)
    obj要定義屬性的對象
    prop要定義或修改的屬性的名稱或symbol
    descriptor要定義或修改的屬性描述符

屬性描述符:
數(shù)據(jù)屬性(Data Properties)描述符(Descriptor);
存取屬性(Accessori訪問器Properties)描述符(Descriptor);


屬性描述符.png

Configurable:表示屬性是否可以通過deletef刪除屬性,是否可以修改它的特性,或者是否可以將它修改為存取屬性
描述符磕蒲;

  • 當我們直接在一個對象上定義某個屬性時,這個屬性的[Configurable]為true;
  • 當我們通過屬性描述符定義一個屬性時只盹,這個屬性的[Configurable]默認為false;

Enumerable:表示屬性是否可以通過for-in或者Object.keys0返回該屬性辣往;

  • 當我們直接在一個對象上定義某個屬性時,這個屬性的[Enumerable]為true;
  • 當我們通過屬性描述符定義一個屬性時殖卑,這個屬性的[Enumerable]默認為false;

Writable:表示是否可以修改屬性的值站削;

  • 當我們直接在一個對象上定義某個屬性時,這個屬性的[Writable]為true;
  • 當我們通過屬性描述符定義一個屬性時孵稽,這個屬性的[Writable]默認為false;

value:屬性的value值钻哩,讀取屬性時會返回該值,修改屬性時肛冶,會對其進行修改街氢;
口默認情況下這個值是undefined;
ps:value、writable睦袖、get珊肃、set不能共存

使用示例

const object1 = {};
Object.defineProperty(object1, 'property1', {
  value: 42,
  writable: false,
});

object1.property1 = 77;
// Throws an error in strict mode

console.log(object1.property1);
// Expected output: 42

const obj = {};
Object.defineProperties(obj, {
  property1: {
    value: true,
    writable: true,
  },
  property2: {
    value: "Hello",
    writable: false,
  },
  // 等等……
});

二、對象的創(chuàng)建

1馅笙、工廠模式

function createPerson(name,age,height,address){
  var p = {}
  p.name= name
  p.age= age
  p.height=height
  p.address= address
  p.eating= function(){
  console.Log(this.name+,"在吃東西~")}
  p.running= function(){
  console.log(this.name+."在跑步~")}
  return p
}

工廠模式的缺點:

  • 拿不到對象的類型
  • 每一個對象都有屬性自己的方法伦乔,沒有公共的部分

2、構(gòu)造函數(shù)

  • 使用new關(guān)鍵字來調(diào)用一個函數(shù)董习,則這個函數(shù)就是一個構(gòu)造函數(shù)烈和,使用該構(gòu)造函數(shù)的函數(shù)執(zhí)行流程
    1.在內(nèi)存中創(chuàng)建一個新的對象(空對象);
    2.這個對象內(nèi)部的[prototype]屬性會被賦值為該構(gòu)造函數(shù)的porototype屬性
    3.構(gòu)造函數(shù)內(nèi)部的this,會指向創(chuàng)建出來的新對象皿淋;
    4.執(zhí)行函數(shù)的內(nèi)部代碼(函數(shù)體代碼)
    5.如果構(gòu)造函數(shù)沒有返回非空對象招刹,則返回創(chuàng)建出來的新對象;
  • 約定如果想把一個函數(shù)作為構(gòu)造函數(shù)來使用窝趣,則將函數(shù)的首字母大寫
function Person(name, age, height, address) {
  this.name = name;
  this.age = age;
  this.height = height;
  this.address = address;
  this.eating = function () {
    console.log(this.name + "在吃東西~");
  };
  this.running = function () {
    console.log(this.name + "在跑步");
  };
}
varp1 = new Person("張三", 18, 1.88, "廣州市");

構(gòu)造函數(shù)的缺點:

  • 每一個對象都有屬性自己的方法疯暑,沒有公共的部分(可使用原型來優(yōu)化)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者

  • 序言:七十年代末,一起剝皮案震驚了整個濱河市哑舒,隨后出現(xiàn)的幾起案子妇拯,更是在濱河造成了極大的恐慌,老刑警劉巖洗鸵,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件越锈,死亡現(xiàn)場離奇詭異仗嗦,居然都是意外死亡,警方通過查閱死者的電腦和手機甘凭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進店門稀拐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人对蒲,你說我怎么就攤上這事」鼻蹋” “怎么了蹈矮?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長鸣驱。 經(jīng)常有香客問我泛鸟,道長,這世上最難降的妖魔是什么踊东? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任北滥,我火速辦了婚禮,結(jié)果婚禮上闸翅,老公的妹妹穿的比我還像新娘再芋。我一直安慰自己,他們只是感情好坚冀,可當我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布济赎。 她就那樣靜靜地躺著,像睡著了一般记某。 火紅的嫁衣襯著肌膚如雪司训。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天液南,我揣著相機與錄音壳猜,去河邊找鬼。 笑死滑凉,一個胖子當著我的面吹牛统扳,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播畅姊,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼闪幽,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了涡匀?” 一聲冷哼從身側(cè)響起盯腌,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎陨瘩,沒想到半個月后腕够,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體级乍,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年帚湘,在試婚紗的時候發(fā)現(xiàn)自己被綠了玫荣。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡大诸,死狀恐怖捅厂,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情资柔,我是刑警寧澤焙贷,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站贿堰,受9級特大地震影響辙芍,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜羹与,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一故硅、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧纵搁,春花似錦吃衅、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至妄辩,卻和暖如春惑灵,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背眼耀。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工英支, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人哮伟。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓干花,卻偏偏與公主長得像,于是被迫代替她去往敵國和親楞黄。 傳聞我的和親對象是個殘疾皇子池凄,可洞房花燭夜當晚...
    茶點故事閱讀 43,446評論 2 348

推薦閱讀更多精彩內(nèi)容