javascript的对象
简介:
JavaScript 中的所有事物都是对象:字符串、数字、数组、日期,等等。
在 JavaScript 中,对象是拥有属性和方法的数据。
一.对象的类型
- 本地对象:就是ECMA定义好的一些对象,包含Array、Boolean、Date、Function、Global、Math、Number、Object、RegExp、String以及各种错误类对象Error、EvalError、RangeError、ReferenceError、SyntaxError和TypeError。
- 内置对象:只有Global和Math两个对象,其实可以理解为是包含在本地对象中的。
- 宿主对象:需要依赖浏览器等宿主环境的对象,简单点就是我们自定义的各种对象,包括BOM和DOM对象。
二.对象的创建、继承
字面量形式
var obj = {name:"hello",age:18}
使用new关键字
var obj = new object()
obj.name = "hellow";
obj.age = 19;使用ES5的object.create()
object.create()是一个静态的函数,参数一:要继承的对象;参数二:可选,用以对对象的属性做进一步的描述
var obj = object.creat({name:"hello",age:"20"}) //obj继承了name和age属性
4.工厂模式创建 function creatobj (name,age){
var obj = new object();
obj.name = name;
obj.age = age;
return obj;
}
var o1 = creatobj("hello",21);
var o2 = creatobj("hello",22);
优点:能够重复创建同类对象,提高效率
缺点:消耗内存
5.构造函数创建 function Person(name,age) {
this.name = name;
this.age = age;
}
var per1 = new Person("hello",23);
var per2 = new Person("world",24);
6.原型模式 function Person(name,age){
this.name = name;
this.age = age;
}
Person.prototype.showName =function(){
alert(this.name);
}
var pe = new Person("pro",25);
pe.showName(); //25
7.混合模式
三.属性查询
var obj = {name:"hello"}
- 使用in运算符
"name" in obj;
如果对象的自有属性或者继承属性包含该属性就返回true;否则返回false。
2.hasOwnPreperty()obj.hasOwnPrerperty("name");
如果是对象的自有属性就返回true;否则false
3.propertyIsEnumerable()obj.propertyIsEnumerable("name" )
只检测这个属性是自有属性并且是可枚举的时候才返回true;否则返回false
4.使用"!=="obj.name !== undefined //true 存在该属性;false 不存在该属性
但是存在一种特殊的场景只能使用in运算符而不能使用!==;如果var o = {x:undefined}的时候
javascript的对象的更多相关文章
- javascript 全局对象--w3school
JavaScript全局对象 1. decodeURI()解析某个编码的URI. 2.decodeURInComponent()解析一个编码的URI组件. 3.encodeURI()把字符串编码为U ...
- JavaScript Json对象和Json对象字符串的关系 jsonObj<->JsonString
JavaScript Json对象和Json对象字符串的关系 jsonObj<->JsonString 如下示例: 直接写的a1就是一个Json对象,a2 就是一个Json对象字符串; 通 ...
- 从零构建JavaScript的对象系统
一.正统的类与继承 类是对象的定义,而对象是类的实例(Instance).类不可直接使用,要想使用就必须在内存上生成该类的副本,这个副本就是对象. 以Java为例: public class Grou ...
- 关于javascript自定义对象(来自网络)(最近几天不会的)
javascript定义对象的几种简单方法 1.构造函数方式,全部属性及对象的方法都放在构造方法里面定义 优点:动态的传递参数 缺点:每创建一个对象就会创建相同的方法函数对象,占用大量内存 funct ...
- 据说每个大牛、小牛都应该有自己的库——JavaScript原生对象拓展
在据说每个大牛.小牛都应该有自己的库——框架篇中我扬言要做个小牛,没想到一天没更新,小伙儿伴们就戏谑的问我,油哥是不是要太监了?其实事情是这个样子的,这不是太监的节奏,一是,关于写个自己的库的想法由来 ...
- JavaScript RegExp 对象
JavaScript RegExp 对象 RegExp 对象用于规定在文本中检索的内容. 什么是 RegExp? RegExp 是正则表达式的缩写. 当您检索某个文本时,可以使用一种模式来描述要检索的 ...
- JavaScript String 对象
JavaScript String 对象 String 对象 String 对象用于处理文本(字符串). String 对象创建方法: new String(). 语法 var txt = new S ...
- JavaScript Math 对象
JavaScript Math 对象 Math 对象 Math 对象用于执行数学任务. Math 对象并不像 Date 和 String 那样是对象的类,因此没有构造函数 Math(). 语法 var ...
- JavaScript Number 对象
JavaScript Number 对象 Number 对象 Number 对象是原始数值的包装对象. Number 创建方式 new Number(). 语法 var num = new Numbe ...
- JavaScript Array 对象
JavaScript Array 对象 Array 对象 Array 对象用于在变量中存储多个值: var cars = ["Saab", "Volvo", & ...
随机推荐
- Alpha版总结会议
昨天上课的时候,我们学习了项目总结这一部分的内容,并根据老师提供的项目Postmortem模板对我们的项目进行了总结. 项目Postmortem模板主要分为设想和目标.计划.资源.变更管理.设计和实现 ...
- JS中用apply、bind实现为函数或者类传入动态个数的参数
为纪念10年没写blog,第一篇博文就以这样一个有趣的窍门开始吧 -___- 在ES5中,当我们调用一个函数时,如果要传入的参数是根据其他函数或条件判断生成的,也就是说不确定会传入多少个参数时,在不改 ...
- Sql Cursor example
USE [EUC]GO/****** Object: StoredProcedure [dbo].[SP_SME_QueryAuditLog] Script Date: 02/05/2015 ...
- LPC1768\1769之中断优先级与中断优先级组
一.背景 USB在持续通信几十万次后,会出现USB IN中断丢失几次的情况,分析是中断优先级不够高,导 致USB中断在排队,然而排队还未完成,又有新的USB中断发生,致使其中断丢失.LPC1769的所 ...
- Can I Win
In the "100 game," two players take turns adding, to a running total, any integer from 1.. ...
- kill命令
*杀死进程最安全的方法是单纯使用kill命令,不加修饰符,不带标志. 首先使用ps -ef命令确定要杀死进程的PID,然后输入以下命令: # kill -pid 注释:标准的kill命令通 ...
- checked 全选 反选 示例
不多说看例子: 右上侧全选,然后每个栏又有一个栏目全选. 反选解决办法: function selectSubscibe(_class) { $("." + _class + &q ...
- 将页面转化为pdf的实现方法
1.实现代码把html转化为pdf主要是使用wkhtmltopdf.exe工具生成,在获取转化的地址,创建一个进程,把地址传递到进程参数中进行调用wkhtmltopdf.exe工具打印 2.代码片段/ ...
- cron 任务
相关文件 /etc/crontab /etc/cron.deny 设置哪个用户有权限运行 cron 任务 /var/spool/cron/root /var/spool/cron/user /var/ ...
- sh2.sed脚本练习
1,删除/etc/grub.conf文件中行首的空白字符: sed -r 's@^[[ :spapce: ]] +@@g' /etc/grub.conf 2.替换/etc/inittab 文件中&qu ...