JavaScript基础学习(四)—Object
一、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的更多相关文章
- JavaScript 基础 学习 (四)
JavaScript 基础 学习 (四) 解绑事件 dom级 事件解绑 元素.on事件类型 = null 因为赋值的关系,所以给事件赋值为 null 的时候 事件触发的时候,就没有事件处理 ...
- JavaScript 基础学习1-day14
JavaScript 基础学习1 知识预览JavaScript概述二 JavaScript的基础三 JavaScript的对象BOM对象DOM对象实例练习js扩展 JavaScript概述 JavaS ...
- JavaScript 基础 学习(三)
JavaScript 基础 学习(三) 事件三要素 1.事件源: 绑定在谁身上的事件(和谁约定好) 2.事件类型: 绑定一个什么事件 3.事件处理函数: 当行为发生的时候,要执行哪一个函数 ...
- 48.javascript基础学习
javascript基础学习: http://www.w3school.com.cn/jsref/index.asp jS的引入方式: 1.行间事件:为某一个具体的元素标签赋予js内容,oncli ...
- JavaScript 基础学习(二)js 和 html 的结合方式
第一种 使用一个标签 <script type="text/javascript"> js代码; </script> 第二种 使用 script 标签,引入 ...
- Python基础学习四
Python基础学习四 1.内置函数 help()函数:用于查看内置函数的用途. help(abs) isinstance()函数:用于判断变量类型. isinstance(x,(int,float) ...
- JavaScript 基础 学习 (二)
JavaScript 基础 学习 节点属性 每一个节点都有自己的特点 这个节点属性就记录着属于自己节点的特点 1. nodeType(以一个数字来表示这个节点类型) 语法:节点.nodeT ...
- JavaScript 基础 学习 (一)
JavaScript 基础 学习 获取页面中的元素的方法 作用:通过各种方式获取页面中的元素 比如:id,类名,标签名,选择器 的方式来获取元素 伪数组: 长的和数组差不多,也是按照索引排 ...
- 几张非常有意义的JavaScript基础学习思维图
分享几张对于学习JavaScript基础知识非常有意义的图,无论你的JavaScript级别如何,“温故而知新”完全可以从这些图中得到. 推荐理由:归类非常好,非常全面 JavaScript 数组 J ...
随机推荐
- vim + DoxygenToolkit.vim环境搭建
1. :DoxLic --->添加版权 2. :DoxAuthor---->文件头 3. :Dox----> 函数注释 安装过程: 1. 创建目录 ~/.vim/pl ...
- 基于vue2.0+vuex+localStorage开发的本地记事本
本文采用vue2.0+vuex+localStorage+sass+webpack,实现一个本地存储的记事本.兼容PC端和移动端.在线预览地址:DEMO github地址:https://github ...
- 数据库读写分离Amoeba
1.理解读写分离的原理 Amoeba(变形虫)项目,该开源框架于2008发布一款Amoeba for mysql软件,该软件致力于mysql的分布式数据库前端代理层,主要的作用是应用服务访问mysql ...
- 四十年前的 6502 CPU 指令翻译成 JS 代码会是怎样
去年折腾的一个东西,之前 blog 里也写过,不过那时边琢磨边写,所以比较杂乱,现在简单完整地讲解一下. 前言 当时看到一本虚拟机相关的书,正好又在想 JS 混淆相关的事,无意中冒出个问题:能不能把某 ...
- JavaScript中非常强大的Swiper
刚开始学习javaScript的时候,做轮播图(比如手机淘宝首页的广告位置)是使用html和css结合js的for语句.传参等知识写出来的.但学到js事件时,其实用Swiper更加好写,Swiper的 ...
- JS排序算法
1.冒泡排序 冒泡算法是比较相邻的两项,如果前者比后者大,就交换他们. 假设一共有n项,那么一共需要n-1趟,第一趟需要交换n-1次,但是第一趟结束后,最后一项基本确定就是最大项了,所以第二次需要交换 ...
- 在Vue中通过自定义指令获取元素
vue.js 是数据绑定的框架,大部分情况下我们都不需要直接操作 DOM Element,但在某些时候,我们还是有获取DOM Element的需求的: 在 vue.js 中,获取某个DOM Eleme ...
- linux 之程序管理
一个程序的父进程可以用PPID来判断 命令ps -l 可以用来观察程序相关的输出信息 被关闭的程序又产生:crontab或者父进程产生的 我们将常驻在系统中的程序称为:服务(daemon) ...
- 用smarty模板做数据实现修改、分页等功能
先来看怎么把数据库的列表全都显示出来 还是要先建一个php文件,还有html文件,都存到相应的目录下 php文件中 <?php include("../init.inc.php&quo ...
- Yii地址美化(nginx环境)
通过urlmanager实现yii地址美化,需配合服务器中的rewrite配置 1.在'components'中加入 'urlManager'=>array( 'ur ...