JavaScript下申明对象的几种方法小结

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在对象上下文中的改变。

(0)

相关推荐

  • JavaScript下申明对象的几种方法小结

    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(m

  • JavaScript优雅处理对象的6种方法

    目录 前言 1.Object.freeze() 2.Object.seal() 3.Object.keys() 4.Object.values() 5.Object.create() 6.Object.entries() 总结 前言 和其他编程语言一样,JavaScript 有自己的数据类型,如数字.字符串.数组.对象等.而对象在JavaScript中是一种非常重要的数据类型,它们有很多有用的方法,在平常项目开发中可以使用这些方法容易地处理对象. 本文介绍6个在项目中用得上的方法,趁此机会加深其

  • Linux删除目录下的文件的10种方法小结

    看到了一遍文章,便突发奇想的想起Linux中删除目录下的所有文件的方法:整理了几个,如有不足,还望读者不吝赐教! 删除当前目录下的文件 1.rm -f * #最经典的方法,删除当前目录下的所有类型的文件 2.find . -type f -delete或find . -type f -exec rm -f {} \; #用find命令查找普通文件并删除or用find命令的处理动作将其删除 3.find . -type f | xargs rm -f #用于参数列表过长;要删除的文件太多 4.rm

  • JavaScript重定向URL参数的两种方法小结

    这篇文章主要介绍的是JavaScript重定向URL参数的两种方法,下面话不多说,直接看示例代码. 一.字符拼接形式 function setUri(para, val) { var strNewUrl = new String(); var strUrl = new String(); var url = window.location.href; strUrl = window.location.href; if (strUrl.indexOf("?") != -1) { strU

  • JavaScript 申明函数的三种方法 每个函数就是一个对象(一)

    一.申明函数的三种方法 (Declaring a Function) 方法一:function functionName([parameters]){functionBody}; Example D1 复制代码 代码如下: function add(a, b) { return a+b; } alert(add(1,2)); // produces 3 当我们这样申明函数时,函数的内容被解释(但没有执行,要我们调用该函数才会执行),同时,一个名为add的对象已经建立. 方法二:将一个未命名的函数

  • JavaScript中数组去重的5种方法

    正常情况下,数据去重的工作一般都是由后端同事来完成的,但是前端也要掌握好处理数据的能力,万一去重的工作交给我们大前端处理,我们也不能怂呀.现在我总结了一些去重的方法,希望对大家有点帮助. 方法一:new Set()实现数组去重 ES6 提供了新的数据结构 Set,它类似于数组,但是成员的值都是唯一的,没有重复的值. Set 本身是一个构造函数,用来生成 Set 数据结构.Set函数可以接受一个数组,用于初始化.根据 Set的数据特性,我们可以实现数组去重. let list = [1, 1, '

  • JavaScript 中Date对象的格式化代码方法汇总

    JavaScript默认的时间格式我们一般情况下不会用,所以需要进行格式化,下面说说我总结的JavaScript时间格式化方法. 很多时候,我们可以利用JavaScript中Date对象的内置方法来格式化,如: var d = new Date(); console.log(d); // 输出:Mon Nov 04 2013 21:50:33 GMT+0800 (中国标准时间) console.log(d.toDateString()); // 日期字符串,输出:Mon Nov 04 2013

  • Android Intent传递对象的两种方法(Serializable,Parcelable)详细介绍

    Android Intent传递对象的两种方法(Serializable,Parcelable)详细介绍 今天要给大家讲一下Android中Intent中如何传递对象,就我目前所知道的有两种方法,一种是Bundle.putSerializable(Key,Object);另一种是Bundle.putParcelable(Key, Object);当然这些Object是有一定的条件的,前者是实现了Serializable接口,而后者是实现了Parcelable接口,为了让大家更容易理解我还是照常写

  • JavaScript字符串转数字的5种方法及遇到的坑

    String转换为Number有很多种方式,我可以想到的有5种! parseInt(num); // 默认方式 (没有基数) parseInt(num, 10); // 传入基数 (十位数) parseFloat(num) // 浮点数 Number(num); // Number 构造器 ~~num //按位非 num / 1 // 除一个数 num * 1 // 乘一个数 num - 0 // 减去0 +num // 一元运算符 "+" 选择哪一种呢?什么时候选择它?为什么选择这种

  • JavaScript中检测数据类型的四种方法

    目录 1. typeof 2. instanceof 3. constructor(构造函数) 4. Object.prototype.toString.call() 前言:在介绍检测数据类型的方法之前,先说说JavaScript中数据类型有哪些吧~ JS数据类型主要分为两大类:基本数据类型和引用数据类型 基本数据类型:number.string.boolean.null.undefined.symbol(es6)引用数据类型:object(array.function.date...) 数据类

随机推荐