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 相关文章推荐
另类调用flash无须激活的方法
Dec 27 Javascript
非常好用的JsonToString 方法 简单实例
Jul 18 Javascript
js中AppendChild与insertBefore的用法详细解析
Dec 16 Javascript
Jquery实现瀑布流布局(备有详细注释)
Jul 31 Javascript
全面解析Angular中$Apply()及$Digest()的区别
Aug 04 Javascript
微信小程序 loading(加载中提示框)实例
Oct 28 Javascript
js中new一个对象的过程
Feb 20 Javascript
vue.js如何将echarts封装为组件一键使用详解
Oct 10 Javascript
移动端效果之IndexList详解
Oct 20 Javascript
微信小程序scroll-view组件实现滚动动画
Jan 31 Javascript
JS实现随机抽取三人
Nov 06 Javascript
Vue组件简易模拟实现购物车
Dec 21 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
通过对服务器端特性的配置加强php的安全
2006/10/09 PHP
PHP 安全检测代码片段(分享)
2013/07/05 PHP
PHP自动生成表单代码分享
2015/06/19 PHP
基于PHP实现等比压缩图片大小
2016/03/04 PHP
php使用PDO下exec()函数查询执行后受影响行数的方法
2017/03/28 PHP
PHP实现动态压缩js与css文件的方法
2018/05/02 PHP
改进:论坛UBB代码自动插入方式
2006/12/22 Javascript
jQuery Ajax 仿AjaxPro.Utility.RegisterTypeForAjax辅助方法
2011/09/27 Javascript
JQuery操作Select的Options的Bug(IE8兼容性视图模式)
2013/04/21 Javascript
在JavaScript中实现类的方式探讨
2013/08/28 Javascript
jquery动态增加删除表格行的小例子
2013/11/14 Javascript
Angularjs+bootstrap+table多选(全选)支持单击行选中实现编辑、删除功能
2017/03/27 Javascript
vue+webpack实现异步加载三种用法示例详解
2018/04/24 Javascript
纯JS实现的读取excel文件内容功能示例【支持所有浏览器】
2018/06/23 Javascript
Layer弹出层动态获取数据的方法
2018/08/20 Javascript
vue中tab选项卡的实现思路
2018/11/25 Javascript
JS函数进阶之继承用法实例分析
2020/01/15 Javascript
原生JS实现多条件筛选
2020/08/19 Javascript
[49:43]VG vs FNATIC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
实例解析Python设计模式编程之桥接模式的运用
2016/03/02 Python
Python实现简单的HttpServer服务器示例
2017/09/25 Python
解决Django生产环境无法加载静态文件问题的解决
2019/04/23 Python
Python 分享10个PyCharm技巧
2019/07/13 Python
Python3 使用pillow库生成随机验证码
2019/08/26 Python
Anaconda之conda常用命令介绍(安装、更新、删除)
2019/10/06 Python
python将数组n等分的实例
2019/12/02 Python
如何教少儿学习Python编程
2020/07/10 Python
浅谈Python爬虫原理与数据抓取
2020/07/21 Python
使用 css3 transform 属性来变换背景图的方法
2019/05/07 HTML / CSS
俄罗斯三星品牌商店:GalaxyStore
2020/11/04 全球购物
创建索引时需要注意的事项
2013/05/13 面试题
财务管理专业推荐信
2013/11/19 职场文书
2014年元旦促销活动方案
2014/02/22 职场文书
六查六看心得体会
2014/10/14 职场文书
2015年清明节扫墓演讲稿
2015/03/18 职场文书
病危通知书样本
2015/04/17 职场文书