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 Array扩展实现代码
Oct 14 Javascript
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之三
Jan 03 Javascript
关于js new Date() 出现NaN 的分析
Oct 23 Javascript
Jquery on方法绑定事件后执行多次的解决方法
Jun 02 Javascript
jQuery UI Bootstrap是什么?
Jun 17 Javascript
js获取json中key所对应的value值的简单方法
Jun 17 Javascript
Google 爬虫如何抓取 JavaScript 的内容
Apr 07 Javascript
vue深入解析之render function code详解
Jul 18 Javascript
Angular移动端页面input无法输入的解决方法
Nov 14 Javascript
js array数组对象操作方法汇总
Mar 18 Javascript
vue实现跳转接口push 转场动画示例
Nov 01 Javascript
微信小程序搜索框样式并实现跳转到搜索页面(小程序搜索功能)
Mar 10 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
整理的9个实用的PHP库简介和下载
2010/11/09 PHP
Apache服务器无法使用的解决方法
2013/05/08 PHP
php实现文件预览功能
2017/05/23 PHP
如何让PHP编码更加好看利于阅读
2019/05/12 PHP
深入理解JavaScript系列(6) 强大的原型和原型链
2012/01/15 Javascript
用最通俗易懂的代码帮助新手理解javascript闭包 推荐
2012/03/01 Javascript
js模仿windows桌面图标排列算法具体实现(附图)
2013/06/16 Javascript
简单的代码实现jquery定时器
2014/01/03 Javascript
javascript避免数字计算精度误差的方法详解
2014/03/05 Javascript
js图片处理示例代码
2014/05/12 Javascript
jQuery插件之Tocify动态节点目录菜单生成器附源码下载
2016/01/08 Javascript
JQuery validate插件Remote用法大全
2016/05/15 Javascript
jquery实现全选、全不选以及单选功能
2017/03/23 jQuery
Javascript 实现匿名递归的实例代码
2017/05/25 Javascript
Agularjs妙用双向数据绑定实现手风琴效果
2017/05/26 Javascript
JS中将多个逗号替换为一个逗号的实现代码
2017/06/23 Javascript
浅谈JavaScript_DOM学习篇_图片切换小案例
2019/03/19 Javascript
Vue动态生成表格的行和列
2019/07/18 Javascript
Vue全局loading及错误提示的思路与实现
2019/08/09 Javascript
解决vue打包后刷新页面报错:Unexpected token
2019/08/27 Javascript
Layui弹出层 加载 做编辑页面的方法
2019/09/16 Javascript
vue中使用vee-validator完成表单校验方案
2019/11/01 Javascript
使用node.JS中的url模块解析URL信息
2020/02/06 Javascript
Python功能点实现:函数级/代码块级计时器
2019/01/02 Python
Python3 翻转二叉树的实现
2019/09/30 Python
PyCharm 解决找不到新打开项目的窗口问题
2021/01/15 Python
html5音频_动力节点Java学院整理
2018/08/22 HTML / CSS
黄色火烈鸟:De Gele Flamingo
2019/03/18 全球购物
打架检讨书800字
2014/01/10 职场文书
销售主管竞聘书
2014/03/31 职场文书
祖国在我心中的演讲稿
2014/05/04 职场文书
工商企业管理应届生求职信
2014/05/04 职场文书
出国签证在职证明范本
2014/11/24 职场文书
员工自我评价范文
2015/03/11 职场文书
撤诉书怎么写
2015/05/19 职场文书
信息技术研修心得体会
2016/01/08 职场文书