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 getJSON 处理json数据的代码
Jul 26 Javascript
javaScript函数中执行C#代码中的函数方法总结
Aug 07 Javascript
js和jquery使按钮失效为不可用状态的方法
Jan 26 Javascript
jQuery获取剪贴板内容的方法
Jun 16 Javascript
详解javascript中对数据格式化的思考
Jan 23 Javascript
前端图片懒加载(lazyload)的实现方法(提高用户体验)
Aug 21 Javascript
Vue学习笔记之表单输入控件绑定
Sep 05 Javascript
Vue的elementUI实现自定义主题方法
Feb 23 Javascript
D3.js的基础部分之数组的处理数组的排序和求值(v3版本)
May 09 Javascript
新手如何快速理解js异步编程
Jun 24 Javascript
jQuery+css实现的点击图片放大缩小预览功能示例【图片预览 查看大图】
May 29 jQuery
基于JS实现快速读取TXT文件
Aug 25 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
菜鸟修复电子管记
2021/03/02 无线电
社区(php&&mysql)六
2006/10/09 PHP
php 文件状态缓存带来的问题
2008/12/14 PHP
PHP的imageTtfText()函数深入详解
2021/03/03 PHP
动手学习无线电
2021/03/10 无线电
取得父标签
2006/11/14 Javascript
Extjs中的GridPanel隐藏列会显示在menuDisabled中解决方法
2013/01/27 Javascript
JS解决url传值出现中文乱码的另类办法
2013/04/08 Javascript
JS中的数组的sort方法使用示例
2014/01/22 Javascript
ExtJS判断IE浏览器类型的方法
2014/02/10 Javascript
jQuery的选择器中的通配符使用介绍
2014/03/20 Javascript
使用jquery清空、复位整个输入域
2015/04/02 Javascript
JQuery自动触发事件的方法
2015/06/13 Javascript
jQuery Validate初步体验(二)
2015/12/12 Javascript
JavaScript实现字符串与日期的互相转换及日期的格式化
2016/03/07 Javascript
基于javascript实现精确到毫秒的倒计时限时抢购
2016/04/17 Javascript
jQuery编写设置和获取颜色的插件
2017/01/09 Javascript
vue2组件实现懒加载浅析
2017/03/29 Javascript
nodejs接入阿里大鱼短信验证码的方法
2017/07/10 NodeJs
node中短信api实现验证码登录的示例代码
2021/01/20 Javascript
haskell实现多线程服务器实例代码
2013/11/26 Python
Python设计模式之代理模式实例
2014/04/26 Python
Python虚拟环境项目实例
2017/11/20 Python
python3.6 +tkinter GUI编程 实现界面化的文本处理工具(推荐)
2017/12/20 Python
python素数筛选法浅析
2018/03/19 Python
Python3连接SQLServer、Oracle、MySql的方法
2018/06/28 Python
Python下opencv图像阈值处理的使用笔记
2019/08/04 Python
PyQt中使用QtSql连接MySql数据库的方法
2020/07/28 Python
使用CSS3的font-face字体嵌入样式的方法讲解
2016/05/13 HTML / CSS
捷克原创男装和女装购物网站:Bolf.cz
2018/04/28 全球购物
巴黎卡诗加拿大官网:Kérastase加拿大
2018/11/12 全球购物
庆六一文艺汇演活动方案
2014/08/26 职场文书
计划生育责任书
2015/05/09 职场文书
基层党建工作简报
2015/07/21 职场文书
医院中层管理人员培训心得体会
2016/01/11 职场文书
Java服务调用RestTemplate与HttpClient的使用详解
2022/06/21 Java/Android