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 相关文章推荐
火狐浏览器(firefox)下获得Event对象以及keyCode
Nov 13 Javascript
改变javascript函数内部this指针指向的三种方法
Apr 23 Javascript
JS、DOM和JQuery之间的关系示例分析
Apr 09 Javascript
node.js实现多图片上传实例
Jun 03 Javascript
JavaScript检测字符串中是否含有html标签实现方法
Jul 01 Javascript
Javascript获取图片原始宽度和高度的方法详解
Sep 20 Javascript
angularjs 表单密码验证自定义指令实现代码
Oct 27 Javascript
ES6正则表达式扩展笔记
Jul 25 Javascript
基于jQuery的左滑出现删除按钮的示例
Aug 29 jQuery
用Webpack构建Vue项目的实践
Nov 07 Javascript
JavaScript forEach中return失效问题解决方案
Jun 01 Javascript
antd配置config-overrides.js文件的操作
Oct 31 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+mysql留言本源码
2009/11/11 PHP
php变量作用域的深入解析
2013/06/03 PHP
php读取目录及子目录下所有文件名的方法
2014/10/20 PHP
PHP 返回13位时间戳的实现代码
2016/05/13 PHP
利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解
2017/08/30 PHP
php变量与JS变量实现不通过跳转直接交互的方法
2017/08/25 PHP
JQuery 绑定事件时传递参数的实现方法
2009/10/13 Javascript
一些常用弹出窗口/拖放/异步文件上传等实用代码
2013/01/06 Javascript
Javascript模块化编程(一)模块的写法最佳实践
2013/01/17 Javascript
js获取客户端网卡的IP地址、MAC地址
2014/03/26 Javascript
详解JavaScript中shift()方法的使用
2015/06/09 Javascript
jquery制作属于自己的select自定义样式
2015/11/23 Javascript
js实现将选中内容分享到新浪或腾讯微博
2015/12/16 Javascript
深入理解JavaScript 函数
2016/06/06 Javascript
浅谈JSON.stringify()和JOSN.parse()方法的不同
2016/08/29 Javascript
Angular.JS内置服务$http对数据库的增删改使用教程
2017/05/07 Javascript
jQuery实现的简单动态添加、删除表格功能示例
2017/09/21 jQuery
浅析Proxy可以优化vue的数据监听机制问题及实现思路
2018/11/29 Javascript
浅谈Javascript中的对象和继承
2019/04/19 Javascript
NodeJs 模仿SIP话机注册的方法
2019/06/21 NodeJs
小程序使用wxs解决wxml保留2位小数问题
2019/12/13 Javascript
javascript-hashchange事件和历史状态管理实例分析
2020/04/18 Javascript
[06:16]《DAC最前线》之地区预选赛全面回顾
2015/01/19 DOTA
[39:46]完美世界DOTA2联赛PWL S2 LBZS vs Rebirth 第二场 11.25
2020/11/25 DOTA
Python浅复制中对象生存周期实例分析
2018/04/02 Python
Django生成PDF文档显示网页上以及PDF中文显示乱码的解决方法
2019/12/17 Python
解决tensorboard多个events文件显示紊乱的问题
2020/02/15 Python
解决pytorch下出现multi-target not supported at的一种可能原因
2021/02/06 Python
新西兰床上用品和家居用品购物网站:Adairs
2018/04/27 全球购物
工程力学专业毕业生求职信
2013/10/06 职场文书
茶叶生产计划书
2014/01/10 职场文书
考试不及格的检讨书
2014/01/22 职场文书
设备管理实施方案
2014/05/31 职场文书
民事授权委托书范文
2014/08/02 职场文书
先进教师个人总结
2015/02/11 职场文书
反邪教警示教育活动总结
2015/05/09 职场文书