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 相关文章推荐
Prototype 学习 工具函数学习($方法)
Jul 12 Javascript
jQuery 使用手册(二)
Sep 23 Javascript
Javascript 入门基础学习
Mar 10 Javascript
javascript中简单的进制转换代码实例
Oct 26 Javascript
jquery制作居中遮罩层效果分享
Feb 21 Javascript
JavaScript使用HTML5的window.postMessage实现跨域通信例子
Apr 11 Javascript
Knockout自定义绑定创建方法
Dec 26 Javascript
js判断登陆用户名及密码是否为空的简单实例
May 16 Javascript
HTML Table 空白单元格补全的简单实现
Oct 13 Javascript
layer.open的自适应及居中及子页面标题的修改方法
Sep 05 Javascript
webpack 如何同时输出压缩和未压缩的文件的实现步骤
Jun 05 Javascript
Vue循环遍历选项赋值到对应控件的实现方法
Jun 22 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数组函数序列之array_combine() - 数组合并函数使用说明
2011/10/29 PHP
PHP对象转换为数组函数(递归方法)
2012/02/04 PHP
php针对cookie操作的队列操作类实例
2014/12/10 PHP
javascript下查找父节点的简单方法
2007/08/13 Javascript
浅析Node在构建超媒体API中的作用
2014/07/30 Javascript
jQuery判断一个元素是否可见的方法
2015/06/05 Javascript
JS实现图片高亮展示效果实例
2015/11/24 Javascript
Three.js学习之几何形状
2016/08/01 Javascript
关于微信中a链接无法跳转问题
2016/08/02 Javascript
js 基础篇必看(点击事件轮播图的简单实现)
2016/08/20 Javascript
jQuery实现动态显示select下拉列表数据的方法
2018/02/05 jQuery
AngularJS下$http服务Post方法传递json参数的实例
2018/03/29 Javascript
关于HTML5的data-*自定义属性的总结
2018/05/05 Javascript
[55:18]Liquid vs Chaos 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
[01:32:50]DOTA2-DPC中国联赛 正赛 DLG vs XG BO3 第一场 1月25日
2021/03/11 DOTA
python基础教程之面向对象的一些概念
2014/08/29 Python
python使用mailbox打印电子邮件的方法
2015/04/30 Python
分享vim python缩进等一些配置
2018/07/02 Python
python小白切忌乱用表达式
2020/05/29 Python
详解pycharm2020.1.1专业版安装指南(推荐)
2020/08/07 Python
python 利用百度API识别图片文字(多线程版)
2020/12/14 Python
PyQt5通过信号实现MVC的示例
2021/02/06 Python
用CSS3来实现社交分享按钮
2014/11/11 HTML / CSS
C,C++的几个面试题小集
2013/07/13 面试题
什么是继承
2013/12/07 面试题
音乐表演专业毕业生求职信
2013/10/14 职场文书
幼儿园中秋节活动反思
2014/02/16 职场文书
争当四好少年演讲稿
2014/09/13 职场文书
2015应届毕业生求职信范文
2015/03/20 职场文书
终止劳动合同通知书
2015/04/16 职场文书
2015年小学语文教师工作总结
2015/10/23 职场文书
《纸船和风筝》教学反思
2016/02/18 职场文书
七年级生物教学反思
2016/02/20 职场文书
python pygame入门教程
2021/06/01 Python
python批量创建变量并赋值操作
2021/06/03 Python
MySQL数据库查询进阶之多表查询详解
2022/04/08 MySQL