JavaScript下申明对象的几种方法小结


Posted in Javascript onOctober 02, 2008

1.var myObject = {} ;
2.function myObject()
{
....
}
3.var myObject = function(){} ;
对于后两种方法,我们还可以增加参数,这样就类似于一个带参数的构造器了.
例如:
function myObject(msg)
{
alert(msg) ;
}
var newObject = new myObject('Hello,World!') ;

var myObject = function(msg)
{
alert(msg + 'again') ;
}
var newTwoObject = new myObject('Hello,World!) ;

甚至我们可以使用字符串来声明函数,这使得我们的程序更加灵活
例如:
var myObject = new Function("msg","alert(msg)") ;
// Function可以有多个入口参数,最后一个参数作为方法体。
var newObject = new myObject('Hell,World!) ;

JavaScript中成员的声明
在JavaScript中,要声明一个对象的成员也非常简单,但是跟其它的高级程序仍然略有不同
例如:
var myObject = {
"FirstName" : "thtwin",
"LastName" : "thtwinj2ee",
"Age" : 22,
"showFullName" : function()
{
alert(this.FirstName + ' ' + this.LastName) ;
}

} ;
myObject.showFullName() ;

在JavaScript中另一个面向对象的特点是我们可以像高级编程语言一样使用.和[]引用成员.
例如:
var dateTime = {
now : new Date(),
show : function(){
alert(new Date()) ;
}
} ;
alert(dateTime.now) ;
等价于:
alert(dateTime.now) ;

dataTime.show() ;
等价于:
dateTime["show()"] ;

对于方法调用来说,在JavaScript中,所有的对象的基类是Object,基类通过prototype定义了很多的成员
和方法,例如:toString,toLocaleString等.
例如:
var obj = {"toString" : function(){return "This is an test!" ; }} ;
alert(obj) ;

运行时,当alert的时候toString()方法被调用了,事实上,当JavaScript需要将一个对象转换成字符
时就隐式调用了这个对象的toString()方法.
例如:
Date.prototype.toString = function(){alert('this is a test!') ;} ;
var da = new Date(new Date()) ;

Date.prototype.toString = function(){alert('this is a test!') ;} ;
var dt = new Date() + 1 ;

JavaScript中call方法的使用:
关于call的解释:
call 方法可以用来代替另一个对象调用一个方法。
call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。

例如:
function abc()
{
alert(this.member1);
}
var obj = { member1:"Hello world!", show:abc};
var obj2 = { member1:"Hello world again!", show:abc};

obj.show();
//也可以使用
abc.call(obj);
abc.call(obj2);

修改后的另一个版本:
member1 = 'test';
function abc()
{
alert(this.member1);
}
var obj = { member1:"Hello world", show:abc};
var obj2 = { member1:"Hello world again", show:abc};

obj.show();
//也可以使用
abc.call(obj);
abc.call(obj2);

abc(); // 此时abc中的this指向了当前上下文
每个函数都有call方法,上面的过程中我们看到用另一个对象代替调用显示方法,
并注意到this在对象上下文中的改变。

Javascript 相关文章推荐
网页常用特效代码整理
Jun 23 Javascript
Node.js实现在目录中查找某个字符串及所在文件
Sep 03 Javascript
JS获取当前页面名称的简单实例
Aug 19 Javascript
js实现HashTable(哈希表)的实例分析
Nov 21 Javascript
jquery+ajax实现省市区三级联动效果简单示例
Jan 04 Javascript
原生js实现放大镜
Feb 20 Javascript
通过vue-router懒加载解决首次加载时资源过多导致的速度缓慢问题
Apr 08 Javascript
JS弹窗 JS弹出DIV并使整个页面背景变暗功能的实现代码
Apr 21 Javascript
JavaScript和TypeScript中的void的具体使用
Sep 12 Javascript
使用kbone解决Vue项目同时支持小程序问题
Nov 08 Javascript
javascript实现鼠标点击生成文字特效
Dec 24 Javascript
vue 监听窗口变化对页面部分元素重新渲染操作
Jul 28 Javascript
初学JavaScript第二章
Sep 30 #Javascript
select组合框option的捕捉实例代码
Sep 30 #Javascript
javascript优先加载笔记代码
Sep 30 #Javascript
javascript显示隐藏层比较不错的方法分析
Sep 30 #Javascript
javascript不同页面传值的改进版
Sep 30 #Javascript
简明json介绍
Sep 28 #Javascript
正则表达式判断是否存在中文和全角字符和判断包含中文字符串长度
Sep 27 #Javascript
You might like
PHILIPS AE3805收音机的分析打磨
2021/03/02 无线电
Smarty Foreach 使用说明
2010/03/23 PHP
PHP 处理TXT文件(打开/关闭/检查/读取)
2013/05/13 PHP
PHP常见的序列化与反序列化操作实例分析
2019/10/28 PHP
在IE和VB中支持png图片透明效果的实现方法(vb源码打包)
2011/04/01 Javascript
javascript学习笔记(四) Number 数字类型
2012/06/19 Javascript
javascript的push使用指南
2014/12/05 Javascript
Ajax跨域实现代码(后台jsp)
2017/01/21 Javascript
Validform验证时可以为空否则按照指定格式验证
2017/10/20 Javascript
webpack 4.0.0-beta.0版本新特性介绍
2018/02/10 Javascript
vue将后台数据时间戳转换成日期格式
2019/07/31 Javascript
vue点击Dashboard不同内容 跳转到同一表格的实例
2020/11/13 Javascript
Vue在H5 项目中使用融云进行实时个人单聊通讯
2020/12/14 Vue.js
Python实现在Linux系统下更改当前进程运行用户
2015/02/04 Python
Python中使用hashlib模块处理算法的教程
2015/04/28 Python
Python下载懒人图库JavaScript特效
2015/05/28 Python
Python的Django框架中的数据过滤功能
2015/07/17 Python
Python 网页解析HTMLParse的实例详解
2017/08/10 Python
运行django项目指定IP和端口的方法
2018/05/14 Python
对Python 内建函数和保留字详解
2018/10/15 Python
Python函数装饰器常见使用方法实例详解
2019/03/30 Python
Python基础学习之时间转换函数用法详解
2019/06/18 Python
Python-openCV读RGB通道图实例
2020/01/17 Python
Python多进程编程常用方法解析
2020/03/26 Python
CSS3绘制六边形的简单实现
2016/08/25 HTML / CSS
Html5之title吸顶功能
2018/06/04 HTML / CSS
.net工程师笔试题
2012/06/09 面试题
培训演讲稿范文
2014/01/12 职场文书
社区两委对照检查材料
2014/08/23 职场文书
2015年社会治安综合治理工作总结
2015/04/10 职场文书
幼儿园小班班务总结
2015/08/03 职场文书
房屋转让协议书(标准范本)
2016/03/21 职场文书
《天使的翅膀》读后感3篇
2019/12/20 职场文书
iPhone13 Pro外观确定,升级4800万镜头,4月20日发新品
2021/04/15 数码科技
SpringBoot 整合mongoDB并自定义连接池的示例代码
2022/02/28 MongoDB
Python 全局空间和局部空间
2022/04/06 Python