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 性能优化指南(3)
May 21 Javascript
jQuery调用WebService的实现代码
Jun 19 Javascript
jQuery表单域属性过滤器用法分析
Feb 10 Javascript
Node.js插件安装图文教程
May 06 Javascript
Jquery实现select multiple左右添加和删除功能的简单实例
May 26 Javascript
需灵活掌握的Bootstrap预定义排版类 你精通吗?
Jun 20 Javascript
jQuery插件jquery.kxbdmarquee.js实现无缝滚动效果
Feb 15 Javascript
vue指令只能输入正数并且只能输入一个小数点的方法
Jun 08 Javascript
Bootstrap table表格初始化表格数据的方法
Jul 25 Javascript
vue-cli 目录结构详细讲解总结
Jan 15 Javascript
Postman参数化实现过程及原理解析
Aug 13 Javascript
Vue获取微博授权URL代码实例
Nov 04 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
《魔兽争霸3》重制版究竟重制了什么?玩家:这么糊弄真的好吗?
2020/05/04 魔兽争霸
php+mysql分页代码详解
2008/03/27 PHP
php mysql数据库操作分页类
2008/06/04 PHP
实例分析基于PHP微信网页获取用户信息
2017/11/24 PHP
javascript一个无懈可击的实例化XMLHttpRequest的方法
2010/10/13 Javascript
JS实现闪动的title消息提醒效果
2014/06/20 Javascript
JavaScript实现信用卡校验方法
2015/04/07 Javascript
JS实现兼容性好,带缓冲的动感网页右键菜单效果
2015/09/18 Javascript
JS实现超简单的鼠标拖动效果
2015/11/02 Javascript
在其他地方你学不到的jQuery小贴士和技巧(欢迎收藏)
2016/01/20 Javascript
js中判断变量类型函数typeof的用法总结
2016/08/09 Javascript
如何理解jQuery中的ajaxSubmit方法
2017/03/13 Javascript
JavaScript 数组去重并统计重复元素出现的次数实例
2017/12/14 Javascript
vue-cli 引入、配置axios的方法
2018/05/08 Javascript
QQ跳转支付宝并自动领红包脚本(最新)
2018/06/22 Javascript
JavaScript引用类型之基本包装类型实例分析【Boolean、Number和String】
2018/08/09 Javascript
微信头像地址失效踩坑记附带解决方案
2019/09/23 Javascript
微信小程序登陆注册功能的实现代码
2019/12/10 Javascript
vue2.0 watch里面的 deep和immediate用法说明
2020/10/30 Javascript
node.js文件的复制、创建文件夹等相关操作
2021/02/05 Javascript
Python中几个比较常见的名词解释
2015/07/04 Python
详解Python pygame安装过程笔记
2017/06/05 Python
python实现简单中文词频统计示例
2017/11/08 Python
python3利用smtplib通过qq邮箱发送邮件方法示例
2017/12/03 Python
Python爬虫包BeautifulSoup简介与安装(一)
2018/06/17 Python
Python爬虫实现抓取京东店铺信息及下载图片功能示例
2018/08/07 Python
Python过滤txt文件内重复内容的方法
2018/10/21 Python
Pycharm配置远程调试的方法步骤
2018/12/17 Python
Win10里python3创建虚拟环境的步骤
2020/01/31 Python
Canvas高级路径操作之拖拽对象的实现
2019/08/05 HTML / CSS
英国领先的在线礼品店:Getting Personal
2019/09/24 全球购物
酒店管理自荐信
2013/10/23 职场文书
医护人员英文求职信范文
2013/11/26 职场文书
2014新年寄语
2014/01/20 职场文书
学校拾金不昧表扬信
2015/01/16 职场文书
关于springboot配置druid数据源不生效问题(踩坑记)
2021/09/25 Java/Android