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写的操作系统
Apr 23 Javascript
javascript JSON操作入门实例
Apr 16 Javascript
让你的CSS像Jquery一样做筛选的实现方法
Jul 10 Javascript
JSON中双引号的轮回使用过程中一定要小心
Mar 05 Javascript
jQuery中replaceAll()方法用法实例
Jan 16 Javascript
js实现页面跳转的几种方法小结
May 16 Javascript
JS文件/图片从电脑里面拖拽到浏览器上传文件/图片
Mar 08 Javascript
详解Vue2.X的路由管理记录之 钩子函数(切割流水线)
May 02 Javascript
利用JavaScript对中文(汉字)进行排序实例详解
Jun 18 Javascript
原生JS控制多个滚动条同步跟随滚动效果
Dec 22 Javascript
Vue+mui实现图片的本地缓存示例代码
May 24 Javascript
vue自定义正在加载动画的例子
Nov 14 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查询MySQL大量数据的时候内存占用分析
2011/07/22 PHP
PHP使用glob函数遍历目录或文件夹的方法
2014/12/16 PHP
php强制下载文件函数
2016/08/24 PHP
详解php协程知识点
2018/09/21 PHP
疯掉了,尽然有js写的操作系统
2007/04/23 Javascript
关于js中window.location.href,location.href,parent.location.href,top.location.href的用法与区别
2010/10/18 Javascript
IE6-IE9不支持table.innerHTML的解决方法分享
2012/09/14 Javascript
jquery获取iframe中的dom对象(两种方法)
2013/07/02 Javascript
jquery果冻抖动效果实现方法
2015/01/15 Javascript
javascript实现点击商品列表checkbox实时统计金额的方法
2015/05/15 Javascript
javascript实现点击提交按钮后显示loading的方法
2015/07/03 Javascript
javascript 判断两个日期之差的示例代码
2015/09/05 Javascript
使用堆实现Top K算法(JS实现)
2015/12/25 Javascript
Node.js的Express框架使用上手指南
2016/03/12 Javascript
Ubuntu系统下Angularjs开发环境安装
2016/09/01 Javascript
百度搜索框智能提示案例jsonp
2016/11/28 Javascript
基于HTML5+JS实现本地图片裁剪并上传功能
2017/03/24 Javascript
JS+CSS实现下拉刷新/上拉加载插件
2017/03/31 Javascript
详解如何在你的Vue项目配置vux
2018/06/04 Javascript
python中实现精确的浮点数运算详解
2017/11/02 Python
matlab中实现矩阵删除一行或一列的方法
2018/04/04 Python
使用Python处理Excel表格的简单方法
2018/06/07 Python
Python实现提取XML内容并保存到Excel中的方法
2018/09/01 Python
实例详解Python模块decimal
2019/06/26 Python
python使用writerows写csv文件产生多余空行的处理方法
2019/08/01 Python
pytest中文文档之编写断言
2019/09/12 Python
pytorch中使用cuda扩展的实现示例
2020/02/12 Python
Python基于Webhook实现github自动化部署
2020/11/28 Python
全球速卖通西班牙站:AliExpress西班牙
2017/10/30 全球购物
Quiksilver荷兰官方网站:冲浪和滑雪板
2019/11/16 全球购物
数学系个人求职信范文
2014/01/30 职场文书
医院工作检讨书范文
2014/02/10 职场文书
党校学习自我鉴定
2014/02/24 职场文书
车队司机个人自我鉴定
2014/04/17 职场文书
市场营销工作计划书
2014/05/06 职场文书
检讨书怎么写
2015/01/23 职场文书