JavaScript对象访问器属性

  对象访问器就是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>

  

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

时间: 2024-10-11 00:37:06

JavaScript对象访问器属性的相关文章

JavaScript 属性类型(数据属性 访问器属性)

ECMA-2把对象定义为:“无序属性的集合,其属性可以包含基本值.对象或者函数.” 严格来说,这就相当于说对象是一组没有特定顺序的值.对象的属性或方法都有一个名字,而每个名字映射到一个值.我们可以把ECMAScript的对象想象成散列表,无非就是一组名值对,其中值可以是数据或函数.(高程三 P139) [译]JavaScript中对象的属性   <高程三 P139 属性类型> JavaScript笔记--数据属性和访问器属性 JavaScript中有两种不同类型的属性:命名数据属性(named

JavaScript笔记--数据属性和访问器属性

在JavaScript中最基本的创建一个对象的方法是new一个Object()的实例,然后再为其添加属性与方法,下例创建一个包含属性name的person对象,name属性的特征值为"xiaochang": var person = new Object(); person.name = "xiaochang"; person.say = function(){ console.log("Hi, my name is " + this.name)

浅谈js对象之数据属性、访问器属性、Object.defineProperty方法

一.对象 这个不用多说,常见的几种创建对象的方法有: 1.通过构造函数创建对象,如下所示: function Person(){ } var person = new Person(); 2.通过Object创建简单对象,例如: var obj = new Object(); 3.通过字面量创建对象. var obj = {}; 常用的一般是第一种和第三种方法. 二.属性类型 javascript中有两种属性:数据属性和访问器属性,确切的说这两种特性是用来描述对象属性的各种特征,比如说这个对象属

JavaScript数据属性与访问器属性

ES5中对象的属性可以分为‘数据属性’和‘访问器属性’两种. 数据属性一般用于存储数据数值,访问器属性对应的是set/get操作,不能直接存储数据值. 数据属性特性:value.writable.enumerable.configurable. 解释:configurable:true/false,是否可以通过delete删除属性,能否修改属性的特性,能否把属性修改为访问器属性,默认false: enumerable:true/false,是否可以通过for in循环返回,默认false: wr

JavaScript | 数据属性与访问器属性

属性类型 数据属性 - 包含一个数据值的位置,可以读取和写入值 [writable] 是否能修改属性的值 true [enumerable] 是否通过for in 循环返回属性(是否可以被枚举) true [configurable] 是否能通过delete删除,能否修改属性的特性,能否修改访问器属性 true [value] 包含这个属性的数据值,读取属性值的时候从这个位置读取. undefined 访问器属性 [enumerable] 是否通过for in 循环返回属性(是否可以被枚举) t

关于对象的数据属性和访问器属性

ECMAScript中有两种属性:数据属性和访问器属性. 数据属性: 数据属性包含一个数据值的位置,在这个位置可以读取和写入值.数据属性有4个描述其行为的特性. 1. [[Configurable]] 2. [[Enumerable]] 3. [[Writable]] 4. [[Value]] 要修改属性默认的特性,必须使用 Object.defineProperty()方法.这个方法接收三个参数,属性所在的对象,属性的名字和一个描述符对象.其中,描述符对象的属性必须是:configurable

javascript数据属性和访问器属性的理解

1 var book={}; 2 Object.defineProperties(book,{ 3 _year:{ 4 value:2014 5 }, 6 edition:{ 7 value:1 8 }, 9 year:{ 10 get:function(){ 11 return this._year; 12 }, 13 set:function(newValue){ 14 if(newValue>2014){ 15 this._year=newValue; 16 this.edition+=n

Js中的数据属性和访问器属性

Js中的数据属性和访问器属性 在javaScript中,对象的属性分为两种类型:数据属性和访问器属性. 一.数据属性 1.数据属性:它包含的是一个数据值的位置,在这可以对数据值进行读写. 2.数据属性包含四个特性,分别是: configurable:表示能否通过delete删除属性从而重新定义属性,能否修改属性的特性,或能否把属性修改为访问器属性,默认为true enumerable:表示能否通过for-in循环返回属性 writable:表示能否修改属性的值 value:包含该属性的数据值.默

js中的访问器属性中的getter和setter函数实现数据双向绑定

嗯,之前在读js红宝书的时候,在对象那一章有介绍属性类型.第一种数据类型指的是数据属性,第二种是访问器属性.在初识vue的时候,其双向数据绑定也是基于访问器属性中的getter和setter函数原理来实现的.本篇文章就着重解析这两个函数的工作原理. 首先,我们先创建一个a对象,并给他定义了一个默认的属性_b,_b前面的下划线是一种常用的记号,用于表示只能通过对象方法访问的属性. var a={ _b=5;}; 接着定义一个属性为'c'的访问器属性,该属性包含一个get和set函数,get函数用来