JavaScript 学习笔记 (1)

对象

1.创建对象
  对象直接量: 由若干键值对组成的映射表。用来创建对象。
var obj = {a:111,b:333 } ; 等
  new关键字:new运算符创建并初始化一个新对象。关键字new后面跟随一个函数调用。这里的函数称作构造函数(constructor),构造函数用以初始化一个新创建的对象。js语言核心中的原始类型都包含内置构造函数

var obj = new Object();
var bool = new Boolean();
var arr= new Array();
var d = new Date();
var reg = new RegExp('jd');

除了这些内置构造函数外,自定义构造函数也是很常见的。

2.检查对象属性

  • in :检测对象的自有属性和继承属性
  • hasOwnProperty : 检测对象的自有属性
  • propertyIsEnumerable : 检测对象的自有属性,且该属性为可枚举。

  例子

	var obj = {
		name:'obj',
		get value(){return 3}
	}
    var obj1 = Object.create(obj);   // 以obj为原型 创建一个对象
    obj1.age = 14;   // 自有属性
    console.log('name' in obj1);   //true
    console.log('age' in obj1);    //true
    console.log(obj1.hasOwnProperty('name')); // false
    console.log(obj1.hasOwnProperty('age'));  //true
    console.log(obj1.propertyIsEnumerable('age'));//true

3.枚举属性

  • for…in… :遍历对象中所有可枚举的属性名(包括自有属性和继承属性)
  • Object.keys( ) :返回对象所有可枚举的自有属性名数组。
  • Object.getOwnPropertyNames( ) :返回对象所有的自有属性名数组,包括不可枚举的。

4.属性getter和setter
  不同于数据属性,由getter和setter定义的属性称为存储器属性

var obj = {
	label:'公共属性',
	$value:'私有属性',
	
	get num(){return 20},
	set num(v){ },
		
	get name(){return '只读属性'}
}
obj.$value // '私有属性'
obj.num  // 20;
obj.name // '只读属性'

5.属性的特性

数据属性

  • 值 (value)
  • 可写性 (writable)
  • 可枚举性 (enumerable)
  • 可配置性 (configurable)

存储器属性

  • 可读 (get)
  • 可写 (set)
  • 可枚举性 (enumerable)
  • 可配置性 (configurable)

读取自有属性的特性(继承属性需要遍历原型链):

var obj = {
	label:'1111'
}
//返回 :  {value: "公共属性", writable: true, enumerable: true, configurable: true}
Object.getOwnPropertyDescriptor(obj,'label') 

定义属性

var o = { };
//给对象o 定义了一个名为x的只读属性
Object.defineProperty(o,'x',{value:1,writable:false,enumerable:true,configurable:true});
//将x变成存储器属性
Object.defineProperty(o,'x',{get:function(){return 0}})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值