码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript对象访问器属性

时间:2018-03-24 12:45:09      阅读:574      评论:0      收藏:0      [点我收藏+]

标签:获取   class   get   obj   none   val   function   func   abc   

  对象访问器就是setter和getter,他们的作用就是

    1. 提供另外一种方法来获取或者设置对象的属性值,
    2. 并且在获取和设置的时候,可以用一定的其他操作。

  看下面代码:

<script>
	var person = {
		_name : "abc",   //注意此处的_name有一个下划线
	};
	Object.defineProperty(person,"name",{ 
		//注意第二个参数的前面没有下划线,所以_name和name是两个不同的属性
		set : function(value){
			this._name = "new name " + value;   
			//注意这里是给_name属性赋值
		},
		get : function(){
			return "this is name get by function : " + this._name;  
			//注意这里是返回字符串加上_name的值
		}
	});
	//到这里,person于是就有了两个属性:_name和name属性

	// 直接获取_name属性
	console.log(person._name);  //abc

	//通过name属性来间接获取_name的值,因为会执行name属性的getter访问器属性(方法)
	console.log(person.name);   //this is name get by function : abc

	// 直接修改_name属性
	person._name = "xyz";
	console.log(person._name);  //xyz

	//修改name属性,但是name属性的setter访问器属性(方法),会作用到_name属性上
	person.name = "wtf"; 		//该字符串会在前面加上new name,然后在赋值给_name
	console.log(person._name);  //new name wtf
	console.log(person.name);	//this is name get by function : new name wtf
</script>

  

 

JavaScript对象访问器属性

标签:获取   class   get   obj   none   val   function   func   abc   

原文地址:https://www.cnblogs.com/-beyond/p/8638296.html

(1)
(1)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!