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 array 数组详解
Mar 22 Javascript
google地图的路线实现代码
Aug 20 Javascript
jquery 使用点滴函数代码
May 20 Javascript
js实现在页面上弹出蒙板技巧简单实用
Apr 16 Javascript
JavaScript使用DeviceOne开发实战(三)仿微信应用
Dec 02 Javascript
理解AngularJs指令
Dec 10 Javascript
jQuery插件form-validation-engine正则表达式操作示例
Feb 09 Javascript
WdatePicker.js时间日期插件的使用方法
Jul 26 Javascript
JS实现点击链接切换显示隐藏内容的方法
Oct 19 Javascript
JS实现简单的点赞与踩功能示例
Dec 05 Javascript
详解JavaScript 的变量
Mar 08 Javascript
JS监听组合按键思路及实现过程
Apr 17 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的网址
2006/11/25 PHP
php自动跳转中英文页面
2008/07/29 PHP
php防注入,表单提交值转义的实现详解
2013/06/10 PHP
ThinkPHP5&amp;5.1框架关联模型分页操作示例
2019/08/03 PHP
laravel框架使用极光推送消息操作示例
2020/02/15 PHP
javascript动画浅析
2012/08/30 Javascript
浅析js中的浮点型运算问题
2014/01/06 Javascript
jQuery取id有.的值的方法
2014/05/21 Javascript
JavaScript中的异常捕捉介绍
2014/12/31 Javascript
Javascript调用函数方法的几种方式介绍
2015/03/20 Javascript
window.onload与$(document).ready()的区别分析
2015/05/30 Javascript
window.onload绑定多个事件的两种解决方案
2016/05/15 Javascript
基于jquery插件编写countdown计时器
2016/06/12 Javascript
js控制div层的叠加简单方法
2016/10/15 Javascript
js正则表达式最长匹配(贪婪匹配)和最短匹配(懒惰匹配)用法分析
2016/12/27 Javascript
微信小程序本作用域下调用全局JS详解及实例
2017/02/22 Javascript
WdatePicker.js时间日期插件的使用方法
2017/07/26 Javascript
Vue.js实现图片的随意拖动方法
2018/03/08 Javascript
30分钟快速入门掌握ES6/ES2015的核心内容(上)
2018/04/18 Javascript
解决vue数组中对象属性变化页面不渲染问题
2018/08/09 Javascript
js实现漂亮的星空背景
2019/11/01 Javascript
Python函数式编程指南(三):迭代器详解
2015/06/24 Python
简单介绍使用Python解析并修改XML文档的方法
2015/10/15 Python
Python多维/嵌套字典数据无限遍历的实现
2016/11/04 Python
Python 从一个文件中调用另一个文件的类方法
2019/01/10 Python
python 对任意数据和曲线进行拟合并求出函数表达式的三种解决方案
2020/02/18 Python
python 带时区的日期格式化操作
2020/10/23 Python
css3 给背景设置渐变色的方法
2019/09/12 HTML / CSS
精选奢华:THE LIST
2019/09/05 全球购物
小学校园活动策划
2014/01/30 职场文书
小学校园文化建设汇报材料
2014/08/19 职场文书
2016国庆促销广告语
2016/01/28 职场文书
利用 SQL Server 过滤索引提高查询语句的性能分析
2021/07/15 SQL Server
HTML基础详解(下)
2021/10/16 HTML / CSS
python套接字socket通信
2022/04/01 Python
JS精髓原型链继承及构造函数继承问题纠正
2022/06/16 Javascript