每天一篇javascript学习小结(属性定义方法)
更新时间:2015年11月19日 08:44:30 作者:史洲宇
这篇文章主要介绍了javascript中的属性定义方法知识点,对属性定义方法的基本使用方法,以及各种方法进行整理,感兴趣的小伙伴们可以参考一下
定义(Definition).定义属性需要使用相应的函数,比如:
Object.defineProperty(obj, "prop", propDesc)
如果obj没有prop这个自身属性,则该函数的作用是给obj添加一个自身属性prop并赋值,
参数propDesc指定了该属性拥有的特性(可写性,可枚举性等).
如果obj已经有了prop这个自身属性,则该函数的作用是修改这个已有属性的特性,当然也包括它的属性值.
1、defineProperty
var book = { _year: 2004, edition: 1 }; Object.defineProperty(book, "year", { get: function(){ return this._year; }, set: function(newValue){ if (newValue > 2004) { this._year = newValue; this.edition += newValue - 2004; } } }); book.year = 2005; alert(book.edition); //2
2、__defineSetter__ 和 __defineGetter__
var book = { _year: 2004, edition: 1 }; //legacy accessor support book.__defineGetter__("year", function(){ return this._year; }); book.__defineSetter__("year", function(newValue){ if (newValue > 2004) { this._year = newValue; this.edition += newValue - 2004; } }); book.year = 2005; alert(book.edition); //2
以上就是今天的javascript学习小结,之后每天还会继续更新,希望大家继续关注。
相关文章
使用滤镜设置透明导致 IE 6/7/8/9 解析异常的解决方法
使用滤镜设置透明导致 IE 6/7/8/9 解析异常的解决方法,需要的朋友可以参考下。2011-04-04Function.prototype.call.apply结合用法分析示例
昨天在网上看到一个很有意思的js面试题:var a = Function.prototype.call.apply(function(a){return a;}, [0,4,3]);alert(a); 分析步骤如下,感兴趣的朋友可以参考下哈2013-07-07
最新评论