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 相关文章推荐
Jquery 滑入滑出效果实现代码
Mar 27 Javascript
js中浮点型运算BUG的解决方法说明
Jan 06 Javascript
js document.write()使用介绍
Feb 21 Javascript
AngularJS基础 ng-open 指令简单实例
Aug 02 Javascript
基于jQuery使用Ajax动态执行模糊查询功能
Jul 05 jQuery
js实现文件上传功能 后台使用MultipartFile
Sep 08 Javascript
深入解析vue 源码目录及构建过程分析
Apr 24 Javascript
vue实现百度语音合成的实例讲解
Oct 14 Javascript
详解如何在Vue项目中发送jsonp请求
Oct 25 Javascript
vue 解决addRoutes多次添加路由重复的操作
Aug 04 Javascript
vue动画—通过钩子函数实现半场动画操作
Aug 09 Javascript
Vue 打包后相对路径的引用问题
Jun 05 Vue.js
初学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 zip文件解压类代码
2009/12/02 PHP
PHP中比较时间大小实例
2014/08/21 PHP
PHP实现懒加载的方法
2015/03/07 PHP
一文看懂PHP进程管理器php-fpm
2020/06/01 PHP
JavaScript 判断指定字符串是否为有效数字
2010/05/11 Javascript
js报错 Object doesn't support this property or method的原因分析
2011/03/31 Javascript
Google的跟踪代码 动态加载js代码方法应用
2012/11/12 Javascript
jQuery设置与获取HTML,文本和值的简单实例
2014/02/26 Javascript
JS实现模拟风力的雪花飘落效果
2015/05/13 Javascript
jQuery实现有动画淡出效果的二级折叠菜单代码
2015/10/17 Javascript
js 提交form表单和设置form表单请求路径的实现方法
2016/10/25 Javascript
Bootstrap table两种分页示例
2016/12/23 Javascript
Bootstrap fileinput组件封装及使用详解
2017/03/10 Javascript
Angular directive递归实现目录树结构代码实例
2017/05/05 Javascript
Webpack如何引入bootstrap的方法
2017/06/17 Javascript
JavaScript之创意时钟项目(实例讲解)
2017/10/23 Javascript
详解webpack编译多页面vue项目的配置问题
2017/12/11 Javascript
微信小程序实现Session功能及无法获取session问题的解决方法
2019/05/07 Javascript
layer.alert回调函数执行关闭弹窗的实例
2019/09/11 Javascript
JS代码检查工具ESLint介绍与使用方法
2020/02/04 Javascript
解决Vue中使用keepAlive不缓存问题
2020/08/04 Javascript
js实现自定义滚动条的示例
2020/10/27 Javascript
[01:59][TI9趣味视频] 全明星赛奖励
2019/08/23 DOTA
python用ConfigObj读写配置文件的实现代码
2013/03/04 Python
Python使用matplotlib绘制多个图形单独显示的方法示例
2018/03/14 Python
对Python 网络设备巡检脚本的实例讲解
2018/04/22 Python
Python模拟FTP文件服务器的操作方法
2020/02/18 Python
Python 3.8 新功能来一波(大部分人都不知道)
2020/03/11 Python
耐克中国官方商城:Nike中国
2018/10/18 全球购物
实习单位推荐信范文
2013/11/27 职场文书
机械设计及其自动化求职推荐信
2014/02/17 职场文书
区域销售经理岗位职责
2015/04/02 职场文书
2015年共青团工作总结
2015/05/15 职场文书
刑事附带民事起诉状
2015/05/19 职场文书
《西游记》读后感(3篇)
2019/09/20 职场文书
Python 流媒体播放器的实现(基于VLC)
2021/04/28 Python