JavaScript中关联原型链属性特性
作者:bea
数据属性: 数据属性包含一个数据值的位置,在这个位置可以读取和写入值。 4个描述的行为特性: writable 表示能否修改属性的值。默认为true Enumerable 表示能否过过for in循环返回属性是否可以枚举。 configuralbe 表示是否能过来delete删除属性从来重新定义属性,能否修改其配置。 value 包含这个属性的数据值。读取属性值的时候,从这个位置读取。 写入属性值的时候,把新值保存在这个位置。这个特性的默认值为true。 <scri
数据属性:
数据属性包含一个数据值的位置,在这个位置可以读取和写入值。
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中关联原型链属性特性的相关知识,希望对大家有所帮助。
猜你喜欢
您可能感兴趣的文章:
- 使用基于Node.js的构建工具Grunt来发布ASP.NET MVC项目
- JavaScript模版引擎的基本实现方法浅析
- 在ASP.NET MVC项目中使用RequireJS库的用法示例
- 一道常被人轻视的web前端常见面试题(JS)
- 获取阴历(农历)和当前日期的js代码
- Nodejs爬虫进阶教程之异步并发控制
- 极易被忽视的javascript面试题七问七答
- 在JavaScript中使用JSON数据
- 三分钟带你玩转jQuery.noConflict()
- 轻松搞定jQuery.noConflict()
- JavaScript的Backbone.js框架的一些使用建议整理
- 简单了解Backbone.js的Model模型以及View视图的源码
- Backbone.js框架中简单的View视图编写学习笔记
- 10个JavaScript中易犯小错误
- 讲解JavaScript的Backbone.js框架的MVC结构设计理念
- 深入解析JavaScript框架Backbone.js中的事件机制
- Node.js 条形码识别程序构建思路详解
- jQuery插件支持同一页面被多次调用
- JavaScript中通过提示框跳转页面的方法