[置顶] js对象
js中,一切事物都是对象。对象是一切的基础。
而具体到某一个对象时。
对象则是包含一组变量和函数的集合实例
我们先来中体会下je对象的全局。
接下来就具体揭开这个对象的面纱吧
ja对象分类
- Function对象
Function实例
构造函数function
- Object对象
创建静态对象
两者区别
Function·对象,具有调用功能
(可当做构造函数,添加参数),
1通过new关键字实例化,构造函数function,必须通过
function实例,如alert()
2 Object对象,具有固定功能,不能调用()
对象继承
js中对象是基于原型的(prototype)。原型只存在与function中,所以一个原型就是一个对象,也是一个属性包
对象具有的属性:
Caller:表示调用正在执行的函数
prototype:可以用来为对象添加新的属性和方法
arguments:表示函数参数的数组
创建对象
所有的内置对象都是可以通过New关键字或简单语法来创建对象的.如:
Var Obj=New Object() ;
或等于 var Obj={};
Var arry=new Array[];或
Var arry=[ ];
构造函数
每个对象都是以构造函数为起点的。function是构造函数的起点,创建构造函数与上述创建对象Function类似
如:
Var myfunction=new function('a', '/*代码*/'); function myfunction('a', '/*代码*/');
两种都可以,建议第二种方式优先。
添加静态方法:
静态方法充实只存在于对象的某一个具体的实例中,而不存在于构造函数中。更直观的是对存在于Object对象中。
实例代码:
Var myObject=new Object();
//添加属性name属性
myObject.name='h';
//添加一个方法
myObject.alertName=function(){
Alert(this.name);
}
//执行添加的方法
myObject.alertName();
添加公有成员
能够跟随对象实例化的成员称之为公有成员,添加公有成员需要修改函数的原型,即对象的prototype属性。
特点:
公有方法可以随构造函数而被继承下去。使用点操作符号添加方法。
实例代码:
Function my(message)
{
Alert(message);
This.message=message;
}
//添加共有方法
My.prototype.name=function(string){
This.message+=' '+string;
}
//添加共有属性
My.prototype.id='id';
//实例化
Varmyfunction=New my();
//调用共有方法
Myfunction.name();
注意:你不能直接在my()函数中调用name方法,必须是在实例中调用该方法;
私有成员
是在构造函数中定义的变量和函数
如
function my(){
//私有属性
Var myOwner='id';
my.alertName=function(){
Alert(this.name);
}
特权成员
是能够被公开访问的,而且还能访问私有成员。该方法是在构造函数的作用域中使用this关键字定义的方法:
Function myname(message)
{
This.mymessage=message;
Var myOwner=this;
Var lastname='id'; //特权方法
This.appendTomessage=function(string){ This.mymessage+=lastname+string;
Alert(mymessage);
}
}
对象字面量:
是一种语法规则,是创建一个带有共有方法的构造函数的语法;
使用的是点标识符创建对象和成员。
实例代码
如我们刚才创建的私有成员,一般方法创建为
function my(){
//私有属性
Var myOwner='id';
my.alertName=function(){
Alert(this.name);
}
对象字面量方法:
Function my{
myOwner:'id',
alertName:function(){
Alert(this.name)
}
}
注意: 最后是没有逗号的。
小结:
以上是对象的基本描述
在jis中对象分为
function类型(用与创建构造函数,共有成员,私有成员,以及特权成员)
Object类型,用于创建静态成员
共同点
:都可以创建对象字面量
不同点:
Object具有固定功能,不能想function那样调用()
Function可当做构造函数,添加参数,进行调用。
到这里js对象的基础就已经告一段落了,欢迎大家指点
[置顶] js对象的更多相关文章
- [置顶] js中如何复制一个对象,如何获取所有属性和属性对应的值
在js中如何复制一个对象,例如如下一个js对象. 如果知道这个对象的所有属性自然就可以重新new一个,然后对每个属性赋值,就可以做到,但如果不知道呢?如何创建一个内容相同 的对象呢? var obj= ...
- [置顶] js正则表达式的使用
js中的正则表达式比起C#中的正则表达式要弱很多,但基本够用了 1定义正则表达式 2关于验证的三个这则表达式方法 3正则表达式式的转义字符 1定义正则表达式 在js中定义正则表达式很简单,有两种方式, ...
- [置顶] js模板方法的思路及实现
在js中如何实现设计模式中的模板方法? 思路的产生必然要求熟悉js,如何实现?就很简单了,都知道在js中如果定义两个相同名称的方法,前一个方法就会被后一个方法覆盖掉,使用此特点就可以实现模板方法. 例 ...
- [置顶] js操作iframe兼容各种浏览器
在做项目时,遇到了操作iframe的相关问题.业务很简单,其实就是在操作iframe内部某个窗体时,调用父窗体的一个函数.于是就写了两个很简单的htm页面用来测试,使用网上流行的方法在谷歌浏览器中始终 ...
- [置顶] js综合应用:表格的四则运算
在做调查问卷的过程中,遇到一个表格的统计问题,算是需要些js方面的综合知识,所以记录下来. 在上次完成了基本的求和的基础上,添加了基本的加减乘除四则运算. 基本需求简化后如下: 对应的htm了为: & ...
- [置顶] js 实现 <input type="file" /> 文件上传
在开发中,文件上传必不可少,<input type="file" /> 是常用的上传标签,但是它长得又丑.浏览的字样不能换,我们一般会用让,<input type ...
- [置顶] js 控制文章中字体的大小,mootools实现
文中字体要12.14.16号中选择: <span class="zh">字号:<b class="change-font">12< ...
- [置顶] 步步辨析JS中的对象成员
前提 首先我们应该明白创建一个JS对象的具体实例是实例化的过程,而实例化是通过new关键字实现的,这个对象是含有constructor的,一般的核心对象都会具有constructor以便创建其实例.因 ...
- js之滚动置顶效果
0.js获取高度 ? 1 2 3 4 5 6 document.all // 只有ie认识 document.body.clientHeight // 文档的高,屏幕 ...
随机推荐
- BLOG PLUGINS
文章分享按钮 (1)加网(JiaThis) (2)百度分享 文章关联推荐 每篇博文下面可以显示你博客中与该篇博文有些关联的几篇文章,也就是智能推荐,一方面可以增加你博文的曝光率和点击率,一方面也可以给 ...
- Wamp集成环境安装
一.Wamp下载 点我下载WampServer2.1a-x32 二.Wamp安装步骤 三.修改语言为汉语 四.查看测试页面
- SQLite中不支持的sql语法
今天很自然的在写Sql语句的时候用了Top,一开始没发现问题,因为我从数据库读出的值正好是0,而我习惯变量定义的时候也都赋值0,可是到我不要0的时候我就发现问题了.后来才知道,可爱的小sqlite竟然 ...
- vi & vim 基本指令(持续更新ing)
Abstract:1) 文本编辑模式: --INSERT--2)一般模式: --i.o.a.R--3)命令行命令模式 ...
- 2015版Force Touch Mac Book激活三个手指拖动窗口
新买的2015版的Mac Book Pro,一切都好,就是原来一直很的很习惯的三个手指拖动窗口的手势,突然找不到地方设置了,很是让我失望了一把,在想苹果怎么会把这么有用的手势去掉了呢.还好有万能的Go ...
- 通俗理解angularjs中的$apply,$digest,$watch
<!DOCTYPE html> <html lang="zh-CN" ng-app="app"> <head> <me ...
- MySql不支持主外键
创建表不支持主外键,能够添加外键成功,但是无法外键约束.查资料发现MySql的默认ENGINE 为MyISAM ,不支持外键,需要修改为 INNODB 修改前: Create Table CREAT ...
- 不用标准库实现memmove,借助一个缓冲区temp,即使src和dest所指的内存有重叠也能正确拷贝
void *mymemmove(void *dest,const void *src,size_t count) { char temp[count]; int i; char *d=(char *) ...
- 移动平台中 meta 标签的使用
一.meta 标签分两大部分:HTTP 标题信息(http-equiv)和页面描述信息(name). 1.http-equiv 属性的 Content-Type 值(显示字符集的设定) 说明:设定页面 ...
- 表单验证提交——submit与button
之前做东西接触过表单验证提交,但是都是为了完成工作,做完就做完了,没有注过表单验证提交有几种方法,各方法都有啥区别.今天瞎折腾了一下,对他们研究了一下,如下是我个人的理解: submit: 从字面上看 ...