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 相关文章推荐
JavaScript中的History历史对象
Jan 16 Javascript
关于Jqzoom的使用心得 jquery放大镜效果插件
Apr 12 Javascript
js中split函数的使用方法说明
Dec 26 Javascript
jQuery结合HTML5制作的爱心树表白动画
Feb 01 Javascript
关于延迟加载JavaScript
May 05 Javascript
BootStrap中的模态框(modal,弹出层)功能示例代码
Nov 02 Javascript
Jquery获取radio选中值实例总结
Jan 17 jQuery
jquery实现动态创建form并提交的方法示例
May 27 jQuery
js滚轮事件 js自定义滚动条的实现
Jan 18 Javascript
Angular+Ionic使用queryParams实现跳转页传值的方法
Sep 05 Javascript
Vue实现返回顶部按钮实例代码
Oct 21 Javascript
在vue中使用inheritAttrs实现组件的扩展性介绍
Dec 07 Vue.js
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
MYSQL数据库初学者使用指南
2006/11/16 PHP
php中XMLHttpRequest(Ajax)不能设置自定义的Referer的解决方法
2011/11/26 PHP
php强制运行广告的方法
2014/12/01 PHP
php实现QQ空间获取当前用户的用户名并生成图片
2015/07/25 PHP
javascript得到XML某节点的子节点个数的脚本
2008/10/11 Javascript
9个JavaScript评级/投票插件
2010/01/18 Javascript
用jquery设置按钮的disabled属性的实现代码
2010/11/28 Javascript
Jquery UI震动效果实现原理及步骤
2013/02/04 Javascript
Javascript 是你的高阶函数(高级应用)
2015/06/15 Javascript
JS实现很实用的对联广告代码(可自适应高度)
2015/09/18 Javascript
angularjs学习笔记之简单介绍
2015/09/26 Javascript
Javascript获取统一管理的提示语(message)
2016/02/03 Javascript
浅谈js里面的InttoStr和StrtoInt
2016/06/14 Javascript
解决ng-repeat产生的ng-model中取不到值的问题
2018/10/02 Javascript
如何将百度地图包装成Vue的组件的方法步骤
2019/02/12 Javascript
javascrit中undefined和null的区别详解
2019/04/07 Javascript
ES6 Generator函数的应用实例分析
2019/06/26 Javascript
JS代码优化的8点建议
2020/02/04 Javascript
Swiper实现导航栏滚动效果
2020/10/16 Javascript
详解Python编程中基本的数学计算使用
2016/02/04 Python
Python编码类型转换方法详解
2016/07/01 Python
Python语言实现百度语音识别API的使用实例
2017/12/13 Python
python使用pil库实现图片合成实例代码
2018/01/20 Python
python 对key为时间的dict排序方法
2018/10/17 Python
python 将列表中的字符串连接成一个长路径的方法
2018/10/23 Python
python绘图模块matplotlib示例详解
2019/07/26 Python
html5+css3之CSS中的布局与Header的实现
2014/11/21 HTML / CSS
HMV日本官网:全球知名的音乐、DVD和电脑游戏零售巨头
2016/08/13 全球购物
加拿大品牌鞋包连锁店:Little Burgundy
2021/02/28 全球购物
课堂教学改革实施方案
2014/03/17 职场文书
会计专业毕业生自荐书
2014/06/25 职场文书
中国文明网向国旗敬礼活动精彩寄语2014
2014/09/27 职场文书
公务员考察材料
2014/12/23 职场文书
pycharm 如何查看某一函数源码的快捷键
2021/05/12 Python
JVM入门之类加载与字节码技术(类加载与类的加载器)
2021/06/15 Java/Android
mapstruct的用法之qualifiedByName示例详解
2022/04/06 Java/Android