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 相关文章推荐
jQuery 注意事项 与原因分析
Apr 24 Javascript
原生javascript获取元素样式属性值的方法
Dec 25 Javascript
用js实现table单元格高宽调整,兼容合并单元格(兼容IE6、7、8、FF)实例
Jun 25 Javascript
JavaScript中number转换成string介绍
Dec 31 Javascript
js实现同一个页面多个渐变效果的方法
Apr 10 Javascript
浅谈window对象的scrollBy()方法
Jul 15 Javascript
全面解析Bootstrap图片轮播效果
Dec 03 Javascript
jQuery插件passwordStrength密码强度指标详解
Jun 24 Javascript
jQuery使用siblings获取某元素所有同辈(兄弟姐妹)元素用法示例
Jan 30 Javascript
详解浏览器渲染页面过程
Feb 09 Javascript
p5.js入门教程之图片加载
Mar 20 Javascript
解决vue单页面 回退页面 keeplive 缓存问题
Jul 22 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编程基本语法快速入门手册
2016/01/07 PHP
PHP实现的Redis多库选择功能单例类
2017/07/27 PHP
thinkPHP5框架实现基于ajax的分页功能示例
2018/06/12 PHP
jquery tab插件精简版分享
2011/09/10 Javascript
jQuery中each()方法用法实例
2014/12/27 Javascript
jQuery实现页面滚动时动态加载内容的方法
2015/03/20 Javascript
jquery实现鼠标拖拽滑动效果来选择数字的方法
2015/05/04 Javascript
js实现的动画导航菜单效果代码
2015/09/10 Javascript
AngularJS 依赖注入详解和简单实例
2016/07/28 Javascript
js实现html table 行,列锁定的简单实例
2016/10/13 Javascript
使用ionic切换页面卡顿的解决方法
2016/12/16 Javascript
js实现适合新闻类图片的轮播效果
2017/02/05 Javascript
VueJS 集成 Medium Editor的示例代码 (自定义编辑器按钮)
2017/08/24 Javascript
vue自定义指令之面板拖拽的实现
2019/04/14 Javascript
微信小程序wxml列表渲染原理解析
2019/11/27 Javascript
序列化模块json代码实例详解
2020/03/03 Javascript
Vue获取微博授权URL代码实例
2020/11/04 Javascript
[09:43]DOTA2每周TOP10 精彩击杀集锦vol.5
2014/06/25 DOTA
python调用java模块SmartXLS和jpype修改excel文件的方法
2015/04/28 Python
Python中异常重试的解决方案详解
2017/05/05 Python
python生成词云的实现方法(推荐)
2017/06/13 Python
Python 内置函数进制转换的用法(十进制转二进制、八进制、十六进制)
2018/04/30 Python
Python爬取数据并写入MySQL数据库的实例
2018/06/21 Python
django多文件上传,form提交,多对多外键保存的实例
2019/08/06 Python
python实现单链表的方法示例
2019/09/03 Python
python 绘制国旗的示例
2020/09/27 Python
Django框架请求生命周期实现原理
2020/11/13 Python
美国宠物商店:Wag.com
2016/10/25 全球购物
创建市级文明单位实施方案
2014/03/01 职场文书
2014年项目经理工作总结
2014/11/24 职场文书
颐和园的导游词
2015/01/30 职场文书
2015秋季田径运动会广播稿
2015/08/19 职场文书
工作违纪的检讨书范文
2019/07/09 职场文书
如何判断pytorch是否支持GPU加速
2021/06/01 Python
Vue的过滤器你真了解吗
2022/02/24 Vue.js
golang定时器
2022/04/14 Golang