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中Dom的基本操作小结
Jan 23 Javascript
Js冒泡事件详解及阻止示例
Mar 21 Javascript
JavaScript异步编程Promise模式的6个特性
Apr 03 Javascript
jQuery循环滚动新闻列表示例代码
Jun 17 Javascript
浅谈JavaScript Math和Number对象
Jan 26 Javascript
详解JS中的快速排序与冒泡
Jan 10 Javascript
详解使用VueJS开发项目中的兼容问题
Aug 02 Javascript
Vue 表情包输入组件的实现代码
Jan 21 Javascript
JavaScript函数式编程(Functional Programming)箭头函数(Arrow functions)用法分析
May 22 Javascript
js实现打字小游戏
Dec 17 Javascript
深入解析微信小程序开发中遇到的几个小问题
Jul 11 Javascript
js实现有趣的倒计时效果
Jan 19 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程序
2006/10/09 PHP
PHP5.5安装PHPRedis扩展及连接测试方法
2017/01/22 PHP
PHP内部实现打乱字符串顺序函数str_shuffle的方法
2019/02/14 PHP
js 优化次数过多的循环 考虑到性能问题
2011/03/05 Javascript
jQuery EasyUI API 中文文档 - ComboBox组合框
2011/10/07 Javascript
基于JQuery实现鼠标点击文本框显示隐藏提示文本
2012/02/23 Javascript
jQuery.fn和jQuery.prototype区别介绍
2013/10/05 Javascript
JavaScript函数作用域链分析
2015/02/13 Javascript
jQuery右下角旋转环状菜单特效代码
2015/08/10 Javascript
bootstrap实现弹窗和拖动效果
2016/01/03 Javascript
Ionic快速安装教程
2016/06/03 Javascript
Js经典案例的实例代码
2018/05/10 Javascript
Node.js console控制台简单用法分析
2019/01/04 Javascript
vue组件之间的数据传递方法详解
2019/04/19 Javascript
使用vuex较为优雅的实现一个购物车功能的示例代码
2019/12/09 Javascript
Vue数字输入框组件使用方法详解
2020/02/10 Javascript
详解JSON.stringify()的5个秘密特性
2020/05/26 Javascript
Vue绑定用户接口实现代码示例
2020/11/04 Javascript
Python3 中把txt数据文件读入到矩阵中的方法
2018/04/27 Python
Pandas 数据处理,数据清洗详解
2018/07/10 Python
Win8下python3.5.1安装教程
2020/07/29 Python
python实现梯度下降和逻辑回归
2020/03/24 Python
python怎么对数字进行过滤
2020/07/05 Python
EGO Shoes美国/加拿大:英国时髦鞋类品牌
2018/08/04 全球购物
面向中国市场的在线海淘美妆零售网站:Beauty House美丽屋
2021/03/02 全球购物
Deichmann英国:德国鞋类零售商
2021/01/30 全球购物
比较一下entity bean和session bean
2013/12/27 面试题
医药个人求职信范文
2014/01/29 职场文书
家长会主持词
2014/03/26 职场文书
教师师德演讲稿
2014/05/06 职场文书
煤矿安全演讲稿
2014/05/09 职场文书
世博会口号
2014/06/20 职场文书
小学生思想品德评语
2014/12/31 职场文书
MySQL锁机制
2021/04/05 MySQL
深入理解CSS 中 transform matrix矩阵变换问题
2021/08/30 HTML / CSS
教你部署vue项目到docker
2022/04/05 Vue.js