一、Object的基本操作

1.对象的创建

     在JavaScript中,创建对象的方式有两种:构造函数对象字面量

     (1)构造函数

			var person = new Object();
person.name = "Tom";
person.age = 22;
person.say = function(){
alert("Hello");
}

 

     (2)对象字面量

			var person = {
name : "Tom",
age : 22
}

 

2.对象属性和方法的删除

     可以使用delete操作符。

			var person = {};
person.name = "Tom";
person.age = 20;
person.say = function(){
alert("Hello!!!");
} //delete操作符删除对象的属性和方法
delete person.name;
delete person.say; alert(person.age); //20
alert(person.name); //undefined
alert(person.say); //undefined

 

3.对象的遍历

     可以使用for in枚举遍历。

			var person = {};
person.name = "Tom";
person.age = 20;
person.say = function(){
alert("Hello!!!");
} //遍历对象
for(var attr in person){
alert(attr + " = " + person[attr]);
}

 

二、Object的属性和方法

1.constructor属性

     constructor属性是保存当前对象的构造函数,前面的例子中,constructor保存的就是Object方法。

			var person = {};
person.name = "Tom";
person.age = 20;
person.say = function(){
alert("Hello!!!");
} /*
* constructor: 保存对象的创建函数
* function Object() {
* [native code]
* }
*/
alert(person.constructor)

 

2.hasOwnProperty(propertyName)方法

    hasOwnProperty()方法接收一个字符串参数,该参数表示属性名称,用来判断该属性是否在当前对象实例中,而不是在对象的原型链中。

			var person = {};
person.name = "Tom";
person.age = 20;
person.say = function(){
alert("Hello!!!");
} //hasOwnProperty(propertyName): 用于检测给定的属性在当前对象实例中是否存在。
alert(person.hasOwnProperty("name"));//true
alert(person.hasOwnProperty("age")); //true
alert(person.hasOwnProperty("birth")); //false

 

3.isPrototypeOf(Object)方法

     isPrototype()方法接收一个对象,用来判断当前对象是否在传入的参数对象的原型链上,说起来有点抽象,我们来看看代码。

            function MyObject(){
} var obj = new MyObject();
alert(Object.prototype.isPrototypeOf(obj));//true

    我们知道MyObject是继承自Object对象的,而在JS中,继承是通过prototype来实现的,所以Object的prototype必定在MyObject对象实例的原型链上。

 

4.propertyIsEnumerable(prototypeName)方法

     prototypeIsEnumerable用来判断给定的属性是否可以被for..in语句给枚举出来。obj的属性还有很多,比如constructor,比如hasOwnPrototype等等,但是它们没有被输出,说明这些属性不能被for…in给枚举出来,可以通过propertyIsEnumerable方法来得到。

            var person = {};
person.name = "Tom";
person.age = 20;
person.say = function(){
alert("Hello!!!");
} alert(person.propertyIsEnumerable("name")) //true
alert(person.propertyIsEnumerable("age")) //true
alert(person.propertyIsEnumerable("constructor")) //false

 

5.toLocalString()方法

     toLocalString方法返回对象的字符串表示,和代码的执行环境有关。

            var obj = {};
alert(obj.toLocaleString());//[object Object]
var date = new Date();
alert(date.toLocaleString());// 2016/4/27 上午11:47:35

 

6.toString()方法

     toString用来返回对象的字符串表示。

            var obj = {};
alert(obj.toString());//[object Object]
var date = new Date();
alert(date.toString());// Wed Apr 27 2016 11:50:57 GMT+0800

 

7.valueOf()方法

  返回对象的原始值,可能是字符串、数值或布尔类型。

 

三、Object的简单应用

1.模拟Java中的Map

			function Map(){

				var obj = {};

				//put方法
this.put = function(key,value){
//把键值对绑定的obj对象上
obj[key] = value;
} //size(): 获取map个数
this.size = function(){
var count = 0;
for(var attr in obj){
count++;
}
return count;
} //get():根据key获得value
this.get = function(key){
if(obj[key] || obj[key] === 0 || obj[key] ===false){
return obj[key];
}
else{
return null;
}
} //remove():移除元素
this.remove = function(key){
if(obj[key] || obj[key] === 0 || obj[key] ===false){
delete obj[key];
}
} //eacbhMap遍历Map的方法
this.eachMap = function(fn){
for(var attr in obj){
fn(attr,obj[attr]);
} }
} //模拟Java中的Map
var map = new Map();
map.put("01","abc");
map.put("02",0);
map.put("03",true);
map.put("04",new Date()); alert(map.size()); //4
alert(map.get("02")); //0 map.eachMap(function(key,value){
alert(key + " = " + value);
});

JavaScript基础学习(四)—Object的更多相关文章

  1. JavaScript 基础 学习 (四)

    JavaScript 基础 学习 (四) 解绑事件 dom级 事件解绑 ​ 元素.on事件类型 = null ​ 因为赋值的关系,所以给事件赋值为 null 的时候 ​ 事件触发的时候,就没有事件处理 ...

  2. JavaScript 基础学习1-day14

    JavaScript 基础学习1 知识预览JavaScript概述二 JavaScript的基础三 JavaScript的对象BOM对象DOM对象实例练习js扩展 JavaScript概述 JavaS ...

  3. JavaScript 基础 学习(三)

    JavaScript 基础 学习(三) 事件三要素 ​ 1.事件源: 绑定在谁身上的事件(和谁约定好) ​ 2.事件类型: 绑定一个什么事件 ​ 3.事件处理函数: 当行为发生的时候,要执行哪一个函数 ...

  4. 48.javascript基础学习

    javascript基础学习:   http://www.w3school.com.cn/jsref/index.asp jS的引入方式: 1.行间事件:为某一个具体的元素标签赋予js内容,oncli ...

  5. JavaScript 基础学习(二)js 和 html 的结合方式

    第一种 使用一个标签 <script type="text/javascript"> js代码; </script> 第二种 使用 script 标签,引入 ...

  6. Python基础学习四

    Python基础学习四 1.内置函数 help()函数:用于查看内置函数的用途. help(abs) isinstance()函数:用于判断变量类型. isinstance(x,(int,float) ...

  7. JavaScript 基础 学习 (二)

    JavaScript 基础 学习 节点属性 ​ 每一个节点都有自己的特点 ​ 这个节点属性就记录着属于自己节点的特点 1. nodeType(以一个数字来表示这个节点类型) ​ 语法:节点.nodeT ...

  8. JavaScript 基础 学习 (一)

    JavaScript 基础 学习 获取页面中的元素的方法 作用:通过各种方式获取页面中的元素 ​ 比如:id,类名,标签名,选择器 的方式来获取元素 ​ 伪数组: ​ 长的和数组差不多,也是按照索引排 ...

  9. 几张非常有意义的JavaScript基础学习思维图

    分享几张对于学习JavaScript基础知识非常有意义的图,无论你的JavaScript级别如何,“温故而知新”完全可以从这些图中得到. 推荐理由:归类非常好,非常全面 JavaScript 数组 J ...

随机推荐

  1. 配置apache

    1. 修改httpd.conf文件 # vi  /usr/local/apache/conf/httpd.conf 1) 设置根目录的路径 根目录是指Apache存放配置文件和日志文件的目录,配置参数 ...

  2. Java创建对象的几种方式

    解析:Java创建对象的几种方式(重要):(1) 用new语句创建对象,这是最常见的创建对象的方法.(2) 运用反射手段,调用java.lang.Class或者java.lang.reflect.Co ...

  3. 数字化工厂ERP解决方案

    数字化工厂 数字化工厂建设,在现有基础上提升,实现管理层对订单进度.生产绩效.产能分析.质量管理.产品追溯和存货管理等提供业务分析报告:在控制层有可视化看板.移动客户端实现对生产状态的实时掌控,快速处 ...

  4. c++文件读取(一)---输入类使用和查找当前程序路径

    鉴于公司人员流动大,设计一个小的日志定位器,首先要读取日志文件 用输入输出流类操作文件比c的stdio更安全和容易,当然任何此类观点都是对大牛除外 首先是查找当前文件路径,如果用GetCurrentD ...

  5. webots自学笔记(三)控制器与电机控制

    原创文章,来自“博客园,_阿龙clliu” http://www.cnblogs.com/clliu/,装载请注明原文章出处. 上一次建了四足机器人的模型,模型文件在上一篇有下载地址,这一次用控制器让 ...

  6. C++ 带有指针成员的类处理方式

    在一个类中,如果类没有指针成员,一切方便,因为默认合成的析构函数会自动处理所有的内存.但是如果一个类带了指针成员,那么需要我们自己来写一个析构函数来管理内存.在<<c++ primer&g ...

  7. 千呼万呼使出来Gogland (jetBrains发布的golang IDE)

    由于之前一直在用PyCharm在开发, 已经习惯了这个IDE. 转golang开发后一直没找到合适的debug功能的IDE,忽然听说jetBrains发布测试版golang IDE: Gogland带 ...

  8. mybatis基础学习1---(配置文件和sql语句)

    1:配置文件(主要配置文件) 2:配置文件(引入) 3:sql语句解析: <mapper namespace="/"> <!-- 1 -->根据id查对象 ...

  9. 我的Node.js学习历程

    学习一门技术,每个人都有每个人的方法.我的方法很简单,做项目. 基本概念 在搭建一个node网站之前,还是要掌握一些基本的概念的,这里列举一下,具体的内容大家自己到网上去查: npm bower ex ...

  10. Button颜色选择器进阶

    drawable/button_color.xml <?xml version="1.0" encoding="utf-8"?> <selec ...