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 相关文章推荐
前淘宝前端开发工程师阿当的PPT中有JS技术理念问题
Jan 15 Javascript
jQuery EasyUI API 中文文档 - Pagination分页
Sep 29 Javascript
文本框获得焦点和失去焦点的判断代码
Mar 18 Javascript
jQuery登陆判断简单实现代码
Apr 21 Javascript
文本框只能选择数据到文本框禁止手动输入
Nov 22 Javascript
javascript初学者常用技巧
Sep 02 Javascript
js实现九宫格拼图小游戏
Feb 13 Javascript
Jquery EasyUI $.Parser
Jun 02 jQuery
JS设计模式之状态模式概念与用法分析
Feb 05 Javascript
JS实现按比例缩小图片宽高
Aug 24 Javascript
JavaScript实现alert弹框效果
Nov 19 Javascript
JavaScript实现音乐导航效果
Nov 19 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
php中FTP函数ftp_connect、ftp_login与ftp_chmod用法
2014/11/18 PHP
php中有关合并某一字段键值相同的数组合并的改进
2015/03/10 PHP
Zend Framework教程之Zend_Db_Table表关联实例详解
2016/03/23 PHP
Laravel框架实现利用监听器进行sql语句记录功能
2018/06/06 PHP
jQuery 白痴级入门教程
2009/11/11 Javascript
AppBaseJs 类库 网上常用的javascript函数及其他js类库写的
2010/03/04 Javascript
从数据结构分析看:用for each...in 比 for...in 要快些
2013/04/17 Javascript
解析jQuery与其它js(Prototype)库兼容共存
2013/07/04 Javascript
jQuery关于导航条背景切换效果实现示例
2013/09/04 Javascript
CheckBoxList多选样式jquery、C#获取选择项
2013/09/06 Javascript
简单实用的反馈表单无刷新提交带验证
2013/11/15 Javascript
jquery删除ID为sNews的tr元素的内容
2014/04/10 Javascript
jQuery取得设置清空select选择的文本与值
2014/07/08 Javascript
JS组件Bootstrap实现下拉菜单效果代码
2016/04/26 Javascript
javascript insertAfter()定义与用法示例
2016/07/25 Javascript
JSON与XML的区别对比及案例应用
2016/11/11 Javascript
浅谈express 中间件机制及实现原理
2017/08/31 Javascript
vue实现动态按钮功能
2019/05/13 Javascript
Vue Components 数字键盘的实现
2019/09/18 Javascript
微信小程序 动态修改页面数据及参数传递过程详解
2019/09/27 Javascript
vuex存储复杂参数(如对象数组等)刷新数据丢失的解决方法
2019/11/05 Javascript
jquery实现的放大镜效果示例
2020/02/24 jQuery
微信小程序入门之指南针
2020/10/22 Javascript
[01:04:09]DOTA2-DPC中国联赛 正赛 iG vs VG BO3 第二场 2月2日
2021/03/11 DOTA
Python中属性和描述符的正确使用
2016/08/23 Python
Python单元测试工具doctest和unittest使用解析
2019/09/02 Python
python通过matplotlib生成复合饼图
2020/02/06 Python
jenkins+python自动化测试持续集成教程
2020/05/12 Python
Smallable意大利家庭概念店:设计师童装及家居装饰
2018/01/08 全球购物
倡议书的写法
2014/08/30 职场文书
2015年保险业务员工作总结
2015/05/27 职场文书
卢旺达饭店观后感
2015/06/05 职场文书
幼儿园小班班务总结
2015/08/03 职场文书
Python捕获、播放和保存摄像头视频并提高视频清晰度和对比度
2022/04/14 Python
mysql sock文件存储了什么信息
2022/07/15 MySQL
python中使用redis用法详解
2022/12/24 Redis