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 相关文章推荐
js 中 document.createEvent的用法
Aug 29 Javascript
JavaScript获取页面上某个元素的代码
Mar 13 Javascript
tangram框架响应式加载图片方法
Nov 21 Javascript
jquery div拖动效果示例代码
Dec 08 Javascript
JSONP跨域GET请求解决Ajax跨域访问问题
Dec 31 Javascript
js控制元素显示在屏幕固定位置及监听屏幕高度变化的方法
Aug 11 Javascript
jquery实现漫天雪花飞舞的圣诞祝福雪花效果代码分享
Aug 20 Javascript
jquery验证邮箱格式并显示提交按钮
Nov 07 Javascript
js获取当前日期时间及其它日期操作汇总
Mar 08 Javascript
收藏AngularJS中最重要的核心功能
Jul 09 Javascript
vue2.0 资源文件assets和static的区别详解
Apr 08 Javascript
js实现无缝轮播图
Mar 09 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 数组的指针操作实现代码
2011/02/08 PHP
PHP错误Warning: Cannot modify header information - headers already sent by解决方法
2014/09/27 PHP
PHP实现仿Google分页效果的分页函数
2015/07/29 PHP
利用php获得flv视频长度的实例代码
2017/10/26 PHP
PHP实现微信申请退款功能
2018/10/01 PHP
初学js 新节点的创建 删除 的步骤
2011/07/04 Javascript
CSS鼠标响应事件经过、移动、点击示例介绍
2013/09/04 Javascript
javascript操作excel生成报表全攻略
2014/05/04 Javascript
js选项卡的实现方法
2015/02/09 Javascript
超实用的JavaScript表单代码段
2016/02/26 Javascript
基于jQuery下拉选择框插件支持单选多选功能代码
2016/06/07 Javascript
Javascript中的对象和原型(二)
2016/08/12 Javascript
Bootstrap弹出框modal上层的输入框不能获得焦点问题的解决方法
2016/12/13 Javascript
微信小程序遇到修改数据后页面不渲染的问题解决
2017/03/09 Javascript
jq checkbox 的全选并ajax传参的实例
2017/04/01 Javascript
如何阻止小程序遮罩层下方图层滚动
2019/09/05 Javascript
JS实现横向跑马灯效果代码
2020/04/20 Javascript
vue flex 布局实现div均分自动换行的示例代码
2020/08/05 Javascript
老生常谈进程线程协程那些事儿
2017/07/24 Python
浅析python中的迭代与迭代对象
2018/10/08 Python
python+mysql实现学生信息查询系统
2019/02/21 Python
pyqt5实现绘制ui,列表窗口,滚动窗口显示图片的方法
2019/06/20 Python
Html5实现如何在两个div元素之间拖放图像
2013/03/29 HTML / CSS
AmazeUI 折叠面板的实现代码
2020/08/17 HTML / CSS
纪伊国屋泰国网上书店:Kinokuniya泰国
2017/12/24 全球购物
荷兰手表网站:Watch2Day
2018/07/02 全球购物
德国足球商店:OUTFITTER
2019/05/06 全球购物
工程总经理工作职责
2013/12/09 职场文书
客服工作职责
2013/12/11 职场文书
企业军训感想
2014/02/07 职场文书
硕士毕业论文导师评语
2014/12/31 职场文书
入党自荐书范文
2015/03/05 职场文书
幼儿园开学家长寄语(2016春季)
2015/12/03 职场文书
2019年第四季度财务部门工作计划
2019/11/02 职场文书
springboot中的pom文件 project报错问题
2022/01/18 Java/Android
MongoDB支持的数据类型
2022/04/11 MongoDB