JavaScript中关联原型链属性特性


Posted in Javascript onFebruary 13, 2016

数据属性:

数据属性包含一个数据值的位置,在这个位置可以读取和写入值。

4个描述的行为特性:

writable 表示能否修改属性的值。默认为true

Enumerable 表示能否过过for in循环返回属性是否可以枚举。

configuralbe 表示是否能过来delete删除属性从来重新定义属性,能否修改其配置。

value 包含这个属性的数据值。读取属性值的时候,从这个位置读取。

写入属性值的时候,把新值保存在这个位置。这个特性的默认值为true。

<script>
function Foo(){}
Foo.prototype.z = 
var obj = new Foo()
obj.x = 
alert("x" in obj) //=>true x是obj对象的自有属性
alert("z" in obj) //=>true z是obj原型上继承来看属性
//hasOwnProperty 必须是对象上的自有的属性才返回true
alert(obj.hasOwnProperty("x")) //true x是obj对象上的自有属性
alert(obj.hasOwnProperty("z")) //false z是obj原型上继承来的属性,不是他的私有属性
alert(Foo.prototype.hasOwnProperty("z")) //=>true z是原型上自有的属性,所以返回true
alert(Object.prototype.hasOwnProperty("toString"))//=>toString 是顶级对象上的自有属性,所以返回true
//prpertyisEnumeralbe 的意思是必是对象上的自有属性而且要以是枚举的,但是对象的可枚举属性Enumeralbe是true,才能返回true
alert(obj.propertyIsEnumerable("x")) //true x是obj对象上可枚举的属性
alert(obj.propertyIsEnumerable("z")) //false z是obj原型上的属性,不是自有属性,则不可以枚举
alert(Foo.prototype.propertyIsEnumerable("z")) //true x是原型上的自有属性,所以可以枚举
</script>

如何枚举属性,枚举属性对于原型又有什么区别?

演示代码如下:

<script>
function Foo(){}
Foo.prototype.age = 
var obj = new Foo()
obj.name = "ziksang"
obj.addr = "上海"
obj.telephone = 
for(var p in obj){ //使用FOR IN 可以枚举出自身的属性和原型上的属性
console.log(p)
}
console.log(Object.keys(obj)) //使用Object.keys(obj)只可以枚举Obj对象上自身的属性
console.log(Object.getOwnPropertyNames(obj)) //Object.getOwnPropertyNames(obj)是列出Ojb对象上自身的属性名,与枚举不相关,但是又类似枚举,大家要注意区分
</script>

以上内容是小编给大家介绍的JavaScript中关联原型链属性特性的相关知识,希望对大家有所帮助。

Javascript 相关文章推荐
javascript concat数组累加 示例
Sep 03 Javascript
一个页面元素appendchild追加到另一个页面元素的问题
Jan 27 Javascript
jQuery列表拖动排列具体实现
Nov 04 Javascript
jquery实现超简洁的TAB选项卡效果代码
Aug 28 Javascript
js 转json格式的字符串为对象或数组(前后台)的方法
Nov 02 Javascript
通过原生JS实现为元素添加事件的方法
Nov 23 Javascript
详解Angular调试技巧之报错404(not found)
Jan 31 Javascript
vue axios基于常见业务场景的二次封装的实现
Sep 21 Javascript
微信小程序前端自定义分享的实现方法
Jun 13 Javascript
jQuery属性选择器用法实例分析
Jun 28 jQuery
微信小程序引入Vant组件库过程解析
Aug 06 Javascript
Javascript作用域和作用域链原理解析
Mar 03 Javascript
JavaScript操作class和style样式代码详解
Feb 13 #Javascript
javascript实现查找数组中最大值方法汇总
Feb 13 #Javascript
JavaScript常用数组算法小结
Feb 13 #Javascript
Javascript 字符串模板的简单实现
Feb 13 #Javascript
javascript基础知识分享之类与函数化
Feb 13 #Javascript
JavaScript正则表达式的分组匹配详解
Feb 13 #Javascript
js HTML5 Ajax实现文件上传进度条功能
Feb 13 #Javascript
You might like
如何在PHP中使用Oracle数据库(2)
2006/10/09 PHP
修改PHP的memory_limit限制的方法分享
2012/02/21 PHP
coreseek 搜索英文的问题详解
2013/06/08 PHP
php求正负数数组中连续元素最大值示例
2014/04/11 PHP
JavaScript 操作键盘的Enter事件(键盘任何事件),兼容多浏览器
2010/10/11 Javascript
详解JavaScript的while循环的使用
2015/06/03 Javascript
微信小程序 选择器(时间,日期,地区)实例详解
2016/11/16 Javascript
Vue2实现组件props双向绑定
2016/12/02 Javascript
Angular实现的简单查询天气预报功能示例
2017/12/27 Javascript
解决vue多个路由共用一个页面的问题
2018/03/12 Javascript
JavaScript如何实现元素全排列实例代码
2019/05/14 Javascript
[01:48]DOTA2 2015国际邀请赛中国区预选赛第二日战报
2015/05/27 DOTA
使用python BeautifulSoup库抓取58手机维修信息
2013/11/21 Python
python数据结构之二叉树的建立实例
2014/04/29 Python
python实现对csv文件的列的内容读取
2018/07/04 Python
Pycharm之快速定位到某行快捷键的方法
2019/01/20 Python
使用python远程操作linux过程解析
2019/12/04 Python
pytorch GAN伪造手写体mnist数据集方式
2020/01/10 Python
OpenCV Python实现图像指定区域裁剪
2021/03/12 Python
python实现文件分片上传的接口自动化
2020/11/19 Python
pyspark对Mysql数据库进行读写的实现
2020/12/30 Python
CSS3 Flexbox中flex-shrink属性的用法示例介绍
2013/12/30 HTML / CSS
详解HTML5之pushstate、popstate操作history,无刷新改变当前url
2017/03/15 HTML / CSS
保加利亚服装和鞋类购物网站:Bibloo.bg
2020/11/08 全球购物
管理科学大学生求职信
2013/11/13 职场文书
高中运动会广播稿
2014/01/21 职场文书
护士自我评价范文
2014/01/25 职场文书
采购类个人求职的自我评价
2014/02/18 职场文书
2014婚礼司仪主持词
2014/03/14 职场文书
同学会主持词
2014/03/18 职场文书
互联网创业计划书写作技巧攻略
2014/03/23 职场文书
2014中学教师节广播稿
2014/09/10 职场文书
女性健康知识讲座通知
2015/04/23 职场文书
高温慰问简报
2015/07/21 职场文书
SpringBoot整合Mybatis Generator自动生成代码
2021/08/23 Java/Android
Ruby处理CSV数据方法详解
2022/04/18 Ruby