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 相关文章推荐
40个新鲜出炉的jQuery 插件和免费教程[上]
Jul 24 Javascript
javascript实现分栏显示小技巧附图
Oct 13 Javascript
jquery移动节点实例
Jan 14 Javascript
使用Raygun来自动追踪AngularJS中的异常
Jun 23 Javascript
DEDECMS如何为文章添加HOT NEW标志图片
Aug 14 Javascript
js实现新年倒计时效果
Dec 10 Javascript
JS实现京东首页之页面顶部、Logo和搜索框功能
Jan 12 Javascript
vue.js加载新的内容(实例代码)
Jun 01 Javascript
jQuery实现侧边栏隐藏与显示的方法详解
Dec 22 jQuery
vscode vue 文件模板的配置方法
Jul 23 Javascript
JavaScript快速调试的两个技巧
Nov 04 Javascript
解决vue props传Array/Object类型值,子组件报错的情况
Nov 07 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中利用XML技术构造远程服务(下)
2006/10/09 PHP
PHP IE中下载附件问题解决方法
2014/01/07 PHP
php使用sql server验证连接数据库的方法
2014/12/25 PHP
php 生成加密公钥加密私钥实例详解
2017/06/16 PHP
phpinfo的知识点总结
2019/10/10 PHP
Javascript实例教程(19) 使用HoTMetal(1)
2006/12/23 Javascript
理解JSON:3分钟课程
2011/10/28 Javascript
window.location的重写及判断location是否被重写
2014/09/04 Javascript
JavaScript调试工具汇总
2014/12/23 Javascript
firefox浏览器用jquery.uploadify插件上传时报HTTP 302错误
2015/03/01 Javascript
jQuery自动添加表单项的方法
2015/07/13 Javascript
JS+CSS实现分类动态选择及移动功能效果代码
2015/10/19 Javascript
javascript检测移动设备横竖屏
2016/05/21 Javascript
Angular浏览器插件Batarang介绍及使用
2018/02/07 Javascript
vue和webpack打包项目相对路径修改的方法
2018/06/15 Javascript
vue  自定义组件实现通讯录功能
2018/09/30 Javascript
vue.js的双向数据绑定Object.defineProperty方法的神奇之处
2019/01/18 Javascript
JS实现多功能计算器
2020/10/28 Javascript
python中base64加密解密方法实例分析
2015/05/16 Python
python类和继承用法实例
2015/07/07 Python
获取Django项目的全部url方法详解
2017/10/26 Python
django文档学习之applications使用详解
2018/01/29 Python
python实现下载pop3邮件保存到本地
2018/06/19 Python
pyqt 多窗口之间的相互调用方法
2019/06/19 Python
python 列表转为字典的两个小方法(小结)
2019/06/28 Python
python 图片去噪的方法示例
2019/07/09 Python
windows10 pycharm下安装pyltp库和加载模型实现语义角色标注的示例代码
2020/05/07 Python
详解Python流程控制语句
2020/10/28 Python
CSS3中Animation动画属性用法详解
2016/07/04 HTML / CSS
网络体系结构及协议的定义
2014/03/13 面试题
介绍一下mysql的日期和时间函数
2013/03/28 面试题
建筑安全员岗位职责
2014/03/13 职场文书
地陪导游欢迎词
2015/01/26 职场文书
司机个人年终总结
2015/03/03 职场文书
解决Python中的modf()函数取小数部分不准确问题
2021/05/28 Python
python析构函数用法及注意事项
2021/06/22 Python