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 css float属性的特殊写法
Nov 13 Javascript
javascript 框架小结 个人工作经验
Jun 13 Javascript
actionscript与javascript的区别
May 25 Javascript
javascript 判断整数方法分享
Dec 16 Javascript
JavaScript中使用concat()方法拼接字符串的教程
Jun 06 Javascript
值得分享的Bootstrap Ace模板实现菜单和Tab页效果
Dec 30 Javascript
BootStrap selectpicker
Jun 20 Javascript
基于BootStrap的Metronic框架实现页面链接收藏夹功能按钮移动收藏记录(使用Sortable进行拖动排序)
Aug 29 Javascript
原生js获取left值和top值的三种方法
Aug 02 Javascript
详解微信小程序调起键盘性能优化
Jul 24 Javascript
vue升级之路之vue-router的使用教程
Aug 14 Javascript
利用Node.js如何实现文件循环覆写
Apr 05 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防注入代码
2010/04/07 PHP
关于shopex同步ucenter的redirect问题,导致script不运行
2013/04/10 PHP
php使用mb_check_encoding检查字符串在指定的编码里是否有效
2013/11/07 PHP
destoon二次开发常用数据库操作
2014/06/21 PHP
asp.net和php的区别点总结
2019/10/10 PHP
jQuery 隔行换色 支持键盘上下键,按Enter选定值
2009/08/02 Javascript
一个CSS+jQuery实现的放大缩小动画效果
2014/02/19 Javascript
JavaScript中的ubound函数使用实例
2014/11/04 Javascript
JS实现页面超时后自动跳转到登陆页面
2015/01/19 Javascript
浅谈javascript属性onresize
2015/04/20 Javascript
jQuery的css() 方法使用指南
2015/05/03 Javascript
AngularJS 执行流程详细介绍
2016/08/18 Javascript
一步一步封装自己的HtmlHelper组件BootstrapHelper(三)
2016/09/14 Javascript
详解vue.js组件化开发实践
2016/12/14 Javascript
详解vuelidate 对于vueJs2.0的验证解决方案
2017/03/09 Javascript
Angular实现图片裁剪工具ngImgCrop实践
2017/08/17 Javascript
强大的JavaScript响应式图表Chartist.js的使用
2017/09/13 Javascript
Nodejs把接收图片base64格式保存为文件存储到服务器上
2018/09/26 NodeJs
mock.js实现模拟生成假数据功能示例
2019/01/15 Javascript
vue实现全屏滚动效果(非fullpage.js)
2020/03/07 Javascript
JavaScript, select标签元素左右移动功能实现
2020/05/14 Javascript
使用python绘制人人网好友关系图示例
2014/04/01 Python
Python变量和数据类型详解
2017/02/15 Python
python实现自动解数独小程序
2019/01/21 Python
Python 实现文件读写、坐标寻址、查找替换功能
2019/09/11 Python
使用css3匹配手机屏幕横竖状态
2014/01/27 HTML / CSS
切尔西足球俱乐部官方网上商店:Chelsea FC
2019/06/17 全球购物
New Balance俄罗斯官方网上商店:购买运动鞋
2020/03/02 全球购物
员工自我鉴定
2013/10/09 职场文书
大三在校生电子商务求职信
2013/10/29 职场文书
企业授权委托书范本
2014/04/02 职场文书
电大奖学金获奖感言
2014/08/14 职场文书
个人作风建设心得体会
2014/10/22 职场文书
周年庆典答谢词
2015/01/20 职场文书
大学生党员个人总结
2015/02/13 职场文书
2015年社区居委会工作总结
2015/05/18 职场文书