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资料prototype 属性
Mar 13 Javascript
jquery特效 幻灯片效果示例代码
Jul 16 Javascript
js 动态添加元素(div、li、img等)及设置属性的方法
Jul 19 Javascript
利用Angularjs和Bootstrap前端开发案例实战
Aug 27 Javascript
购物车前端开发(jQuery和bootstrap3)
Aug 27 Javascript
jQuery轮播图效果精简版完整示例
Sep 04 Javascript
JavaScript用JSONP跨域请求数据实例详解
Jan 06 Javascript
AngularJS改变元素显示状态
Apr 20 Javascript
使用JavaScript实现一个小程序之99乘法表
Sep 21 Javascript
VUE重点问题总结
Mar 19 Javascript
使用form-create动态生成vue自定义组件和嵌套表单组件
Jan 18 Javascript
解决vuex刷新状态初始化的方法实现
Aug 15 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
PHP5.3安装Zend Guard Loader图文教程
2014/09/29 PHP
Zend Framework教程之Zend_Controller_Plugin插件用法详解
2016/03/07 PHP
PHP实现的XML操作类【XML Library】
2016/12/29 PHP
PHP创建自己的Composer包方法
2018/04/09 PHP
Code: write(s,d) 输出连续字符串
2007/08/19 Javascript
Iframe thickbox2.0使用的方法
2009/03/05 Javascript
JQuery 应用 JQuery.groupTable.js
2010/12/15 Javascript
JS写的贪吃蛇游戏(个人练习)
2013/07/08 Javascript
input标签内容改变的触发事件介绍
2014/06/18 Javascript
jQuery中:has选择器用法实例
2014/12/30 Javascript
js绘制圆形和矩形的方法
2015/08/05 Javascript
js微信分享API
2020/10/11 Javascript
Vue.js实现可配置的登录表单代码详解
2018/03/29 Javascript
Ant Design Vue table中列超长显示...并加提示语的实例
2020/10/31 Javascript
[01:02:10]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第一局
2016/02/26 DOTA
[02:51]DOTA2 Supermajor小组分组对阵抽签仪式
2018/06/01 DOTA
编程语言Python的发展史
2014/09/26 Python
深入讲解Python中的迭代器和生成器
2015/10/26 Python
python使用标准库根据进程名如何获取进程的pid详解
2017/10/31 Python
详解Python中的Numpy、SciPy、MatPlotLib安装与配置
2017/11/17 Python
Python利用Django如何写restful api接口详解
2018/06/08 Python
Python3 使用map()批量的转换数据类型,如str转float的实现
2019/11/29 Python
Python 实现简单的客户端认证
2020/07/29 Python
First Aid Beauty官网:FAB急救面霜
2018/05/24 全球购物
函授毕业自我鉴定
2013/12/19 职场文书
体育专业个人求职信范文
2013/12/27 职场文书
医药类个人求职的自我评价
2014/02/12 职场文书
化妆品活动策划方案
2014/05/23 职场文书
小学毕业典礼演讲稿
2014/09/09 职场文书
超市仓管员岗位职责范本
2014/09/18 职场文书
医院党的群众路线教育实践活动学习心得体会
2014/10/30 职场文书
学校党风廉政建设调研报告
2015/01/01 职场文书
电影雷锋观后感
2015/06/10 职场文书
2015暑期社会实践通讯稿
2015/07/18 职场文书
开学第一天的感想
2015/08/10 职场文书
教师法制教育培训学习心得体会
2016/01/14 职场文书