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 14 Javascript
Extjs中ComboBoxTree实现的下拉框树效果(自写)
May 28 Javascript
javascript实用小函数使用介绍
Nov 11 Javascript
js控制input框只读实现示例
Jan 20 Javascript
jQuery 中国省市两级联动选择附图
May 14 Javascript
Javascript removeChild()删除节点及删除子节点的方法
Dec 27 Javascript
微信小程序中实现一对多发消息详解及实例代码
Feb 14 Javascript
JS使用遮罩实现点击某区域以外时弹窗的弹出与关闭功能示例
Jul 31 Javascript
Vue项目自动转换 px 为 rem的实现方法
Oct 29 Javascript
vue 之 css module的使用方法
Dec 04 Javascript
javascript的delete运算符知识点总结
Nov 19 Javascript
Vue父组件向子组件传值以及data和props的区别详解
Mar 02 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的foreach中使用引用时需要注意的一个问题和解决方法
2014/05/29 PHP
php实现检查文章是否被百度收录
2015/01/27 PHP
php使用递归函数实现数字累加的方法
2015/03/16 PHP
微信支付PHP SDK之微信公众号支付代码详解
2015/12/09 PHP
PHP实现适用于文件内容操作的分页类
2016/06/15 PHP
PHP不使用递归的无限级分类简单实例
2016/11/05 PHP
Javascript----文件操作
2007/01/18 Javascript
jquery indexOf使用方法
2013/08/19 Javascript
页面定时刷新(1秒刷新一次)
2013/11/22 Javascript
Jqgrid表格随窗口大小改变而改变的简单实例
2013/12/28 Javascript
jQuery+jRange实现滑动选取数值范围特效
2015/03/14 Javascript
jQuery实现的背景动态变化导航菜单效果
2015/08/24 Javascript
分享JavaScript与Java中MD5使用两个例子
2015/12/23 Javascript
纯JS实现可拖拽表单的简单实例
2016/09/02 Javascript
JS判断时间段的实现代码
2017/06/14 Javascript
JavaScript编写棋盘覆盖代码详解
2017/08/28 Javascript
深入理解JavaScript的async/await
2018/08/05 Javascript
防止Layui form表单重复提交的实现方法
2019/09/10 Javascript
layui(1.0.9)文件上传upload,前后端的实例代码
2019/09/26 Javascript
关于vue利用postcss-pxtorem进行移动端适配的问题
2019/11/20 Javascript
[03:59]5分钟带你了解什么是DOTA2(第二期)
2017/02/07 DOTA
Windows安装Python、pip、easy_install的方法
2017/03/05 Python
python实现画图工具
2020/08/27 Python
为2021年的第一场雪锦上添花:用matplotlib绘制雪花和雪景
2021/01/05 Python
使用python实现学生信息管理系统
2021/02/25 Python
HTML5的hidden属性兼容老浏览器的方法
2014/04/23 HTML / CSS
伦敦一家西班牙童装精品店:La Coqueta
2018/02/02 全球购物
化石印度尼西亚在线商店:Fossil Indonesia
2019/03/11 全球购物
中专毕业个人的自荐信格式
2013/09/21 职场文书
大学生党员承诺书
2014/05/20 职场文书
小学标准化建设汇报材料
2014/08/16 职场文书
机关单位保密工作责任书
2015/05/11 职场文书
公司职员入党自传书
2015/06/26 职场文书
北京大学中文系教授推荐的10本小说
2019/08/08 职场文书
总结Java对象被序列化的两种方法
2021/06/30 Java/Android
python自动化操作之动态验证码、滑动验证码的降噪和识别
2021/08/30 Python