朋友们大家好, 好久没有更新文章了, 最近正好有空就想着写点什么吧, 加上这段时间总是能听到一些朋友们问关于 JS 函数, 方法, 对象实例到底有什么区别这个问题, 所以今天就献丑来简单说明一些吧!
其实这些主要都是一些概念上的东西, 在这里还是推荐大家多看看诸如《JavaSript 权威指南》,《JavaScript 高级编程》之类的书籍, 当然这些概念如果用代码写出来我相信大家也都还是能够知道的, 所以下面我就用文字和代码举一些简单的例子进行说明:
函数: 简单的说函数就是, 使用 function 关键字定义 (或声明) 的表达式语句; 他有两种写法, 一种是函数定义表达式:
var aa = function(){....};
另一种是函数声明语句:
function aa(){....};
这两种写法在调用时基本一样, 但是这两种写法还是有一些区别的:
1.JS 脚本在运行时会把函数声明语句提升到所在作用域的最顶端, 也就是说你在底下声明的函数在其声明之前也可以调用, 即可以先调用后声明, 但函数定义表达式则必须先定义后调用;
2. 正是函数声明语句的作用域提升所以最好不要在 if/for/while 等语句内使用函数声明语句, 因为这些语句没有块级作用域;
函数说完了, 接下来说说方法:
方法: 所谓方法其实就是当对象的属性是一个函数时, 这个函数就是该对象的方法; 简而言之方法就是, 作为对象属性的函数!
- // 定义一个对象 bb
- var bb = {
- cc : function(){
- ...........
- }
- }
看上面这段代码, 函数 cc 在这里就是对象 bb 的方法, 我们一般叫做 bb 的 cc 方法!
看到这里我想大家应该能够明白函数跟方法的区别了吧:
方法也是函数, 但只有作为对象属性的函数才是方法!
有点绕啊, 但是大家应该都能看的明白!
接着我们在来说说实例:
实例是怎么回事了, 其实简单点说, 实例就是通过 new 关键字调用的对象!
- var obj = new Object; // 这里对象 obj 就是一个对象实例;
- var arr = new Array; // 这里的 arr 就是一个数组实例;
上面是两个简单的例子; 下面我们可一个稍微复杂点的:
- // 创建一个简单的 information
- var information = function(){
- this.name = '';
- this.setName = function(name){
- this.name = name;
- }
- this.getName = function(){
- alert(this.name);
- }
- }
- // 创建 information 类的实例
- var myName = new information;// 这里没有参数, 可以省略小括号
- myName.setName('平凡公子');// 调用实例的 setName 方法;
- myName.getName() // 调用实例的 getName 方法;
上面这个例子可以看出实例, 方法, 以及实例方法; information 是一个对象(函数也是对象),myName 是 information 对象的实例, setName 和 getName 是对象方法, 在这里它们也是实例对象 myName 的方法!
总结: 方法是一个作为对象属性的函数, 实例是通过关键字 new 来调用的函数(对象), 实例对象是对对象的一个引用, 它具有对象的所有方法!
好吧, 说到这里本文也就该结束了, 可能由于语言水平问题有些地方没有表达清楚, 还请各位看官海涵! 如有不明白的地方可以留言!
来源: http://www.bubuko.com/infodetail-3019075.html