博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JS学习之聊聊属性
阅读量:6696 次
发布时间:2019-06-25

本文共 1094 字,大约阅读时间需要 3 分钟。

var Person={

   name:"fzh",

   job:"实习生",

   age:29

}

以上的代码很简单我就定义了一个Person的类型有name、job、age三个字段,好了现在我想添加一些额外的特性(我更喜欢这样叫)比如:

   //让name的为只读的  实现:

Object。defineProperty(Person,"name",{   //方法接受的参数为属性的对象,属性的名称和定义的,定义的特性(JSON)

  writable:false,              //定义为只读

  Configurable:false        //定义为不能通过delete关键字删除

});

alert(Person.name); //fzh

Person.name="123";

alert(Person.name);//fzh

delete Person.name;

alert(Person.name); //fzh

执行下来你会发现name属性现在变为只读的和不可删除的。

注解:在JS常用特性:

【Configurable】:是否可以通过delete关键字删除。默认值true

【Enumerable】:是否能通过for  in枚举对象。默认值true

【Writable】:表示是否修改属性的值。默认值true

【value】:设置值。

其他:【get】和【set】属性的读取和赋值

//对前面的age进行get和set的设置

Object。defineProperty(Person,"age",{   

   get:function(){ return age };

   set:function(value){ this.age=value };

});

前面的写法都是通过Object进行单独字段进行设置,也可以进行多个字段的设置:

var book={};

Object.defineProperties(book,{

   name:{ value:fzh,writable:false }//设置为只读的

   job:{value:"实习生"}

   age:{

      get:function(){ return this.age };

      set:function(value){ this.age=value};

   }

});

在这些特性的帮助下JS的属性也显得那样的生动。这对JS对象的引用和显示逻辑的实现提供了不少的帮助。我只是一个实习生,这些都是属于我个人的见解。文笔不好多见谅。高手见到望请指点一下。不甚感激!

转载于:https://www.cnblogs.com/fzh312/p/Call_me_programmer.html

你可能感兴趣的文章
dom4j的读写xml文件,读写xml字符串
查看>>
Node.js 使用jQuery取得Nodejs http服务端返回的JSON对象示例
查看>>
ArcGIS AO开发高亮显示某些要素
查看>>
Python 错误和异常小结[转]
查看>>
Qt Style Sheets Reference
查看>>
C语言:几种字符输入函数的区别
查看>>
百度地图 Android SDK - 个性化地图
查看>>
面 试 细 节 一 点 通
查看>>
SharePoint 2013 Nintex Workflow 工作流帮助(六)
查看>>
Linux中断(interrupt)子系统之五:软件中断(softIRQ)
查看>>
【原】iOS:手把手教你发布代码到CocoaPods(Trunk方式)
查看>>
基于linux 的2048
查看>>
使用Cross-Page Postback(跨页面提交)在页面间传递数据
查看>>
To install 64-bit ODBC drivers
查看>>
MediaWiki安装配置(Linux)【转】
查看>>
网站的SEO以及它和站长工具的之间秘密
查看>>
Hadoop MapReduce概念学习系列之MPI和MapReduce(十三)
查看>>
餐馆的故事-浅析职责链模式
查看>>
jmeter跨线程组传值
查看>>
Console-算法[for]-国王与老人的六十四格
查看>>