JavaScript权威设计--JavaScript函数(简要学习笔记十)

简介:
1.函数命名规范
函数命名通常以动词为前缀的词组。通常第一个字符小写。当包含多个单词时,一种约定是将单词以下划线分割,就像"like_Zqz()"。
还有一种就是"likeZqz()"。有些些函数是用作内部用的或者为私有函数通常以一条下划线为前缀,就像"_zqzName()"。
 
2.以表达式方式定义的函数
如:
var zqz=function (){
    return "zhaoqize";
}
在使用的时候必须把它赋值给一个变量,这里就是zqz。d这里我们就想了之前说的 变量提前JavaScript权威设计--JavaScript类型,值,变量(简要学习笔记四)。但给变量赋值是不会提前的,所以表达式方式定义的函数在定义之前无法调用。
上面的函数是有return返回的。与之不同的是无返回值的函数,这种函数有时候被称为过程。
 
3.函数声明语句
function a(){
    
}
上面是函数声明语句。函数声明语句并非真正的语句。他们作为顶级语句可以出现在全局代码里。或者内嵌到其他函数中,但是他们 不能出现在循环语句,条件语句等中。但函数定义表达式可以出现在任何地方,包括循环语句,条件判断等中。
下面是函数定义表达式
var a=function (){
 
}
 
4.函数调用的四种方式
方式一:作为函数
function a(){
    
}
//调用
a();
 
方式二:作为方法
如:
复制代码
var calcu={    //定义对象直接量
    ope:1,
    opa:1,
    add:function(){
        this.result=this.ope+this.opa;    //this指代当前对象
    }
}
//调用
calcu.add();    //这个方法调用计算1+1的结果,先调用该方法,然后再去获取它的值,执行calcu.result
复制代码
 
这是一个调用表达式,它包括函数表达式calcu.add, 函数表达式本身就是一个属性访问表达式,这意味着该函数被当做一个方法,而不是作为一个普通函数来调用。
 
calcu.result;    //2
 
方法调用与函数调用重要区别:调用上下文
 
属性访问表达式由两部分组成:一个对象(calcu),一个属性名称(add)。
在这样的方法表达式里,对象calcu调用上下文,函数体可以使用关键字this来引用该对象(这个对象就是calcu)。
看下面两行代码,假设功能一样,都作用于对象rect:
 
rect.setSize(width,height);    
setRectSize(rect,width,height);   
 
 
第一句可以清晰的看出这个函数执行的载体是rect对象,函数中的所有操作都是基于这个对象。
 
当方法不需要返回值时,最好直接返回this,如果在设计的API中一直采用这种方式每个方法都返回this,使用API就可以进行 "链式调用"风格的编程,在这种编程中,只要制定一次要调用的对象即可。余下的方法都可以基于此进行调用。
典型的例子就是jQuery。
 
this的指向:
例子说明:(这个例子适合深度思考,结合jQuery)
复制代码
var o={    //对象o
    m:function(){    //对象中的方法m()
        var self=this;    //将this值保存至一个变量中
        console.log(this===o)    //true,this就是对象o
        f();    //调用嵌套函数f
 
        function f(){
            console.log(this===o);    //false:this指向的是全局对象或者undefined
            console.log(self===o);    //true:self指向外部函数的this值
        }
    }
}
//调用
o.m();
复制代码
 
误解:很多人误以为上面例子中嵌套函数f中的this会指向外层函数的上下文this。
如果你想访问外部的this,需要将this的值保存在yige变量中。这个变量和内部函数都在同一个作用域。
 
这里有个链接专门是用来解释this中所指的问题: http://www.ibm.com/developerworks/cn/web/1207_wangqf_jsthis/
 
方式三:作为构造函数(明天学习)
方式四:通过call()与apply()方法间接调用(明天学习
转载:http://www.cnblogs.com/zqzjs/p/4814809.html
目录
相关文章
|
7天前
|
JavaScript 前端开发
JavaScript 函数语法
JavaScript 函数是使用 `function` 关键词定义的代码块,可在调用时执行特定任务。函数可以无参或带参,参数用于传递值并在函数内部使用。函数调用可在事件触发时进行,如用户点击按钮。JavaScript 对大小写敏感,函数名和关键词必须严格匹配。示例中展示了如何通过不同参数调用函数以生成不同的输出。
|
9天前
|
存储 JavaScript 前端开发
JS函数提升 变量提升
【10月更文挑战第6天】函数提升和变量提升是 JavaScript 语言的重要特性,但它们也可能带来一些困惑和潜在的问题。通过深入理解和掌握它们的原理和表现,开发者可以更好地编写和维护 JavaScript 代码,避免因不了解这些机制而导致的错误和不一致。同时,不断提高对执行上下文等相关概念的认识,将有助于提升对 JavaScript 语言的整体理解和运用能力。
|
18天前
|
JavaScript 前端开发
js教程——函数
js教程——函数
21 4
|
2月前
|
JavaScript 前端开发 安全
JavaScript函数详解
JavaScript函数的详细解析,包括函数的定义和调用方式(如一般格式、匿名函数、构造函数、自调用函数、箭头函数和严格模式)、函数参数(arguments对象、可变参数、默认参数值)、闭包的概念和应用实例。
JavaScript函数详解
|
17天前
|
存储 JavaScript 前端开发
js中函数、方法、对象的区别
js中函数、方法、对象的区别
13 2
|
20天前
|
JavaScript 前端开发 Java
【javaScript数组,函数】的基础知识点
【javaScript数组,函数】的基础知识点
21 5
|
20天前
|
JavaScript 前端开发
Node.js 函数
10月更文挑战第5天
19 3
|
23天前
|
前端开发 JavaScript
探索JavaScript函数基础
探索JavaScript函数基础
15 3
|
25天前
|
JavaScript 前端开发
在JS中如何声明一个函数
在JS中如何声明一个函数
23 2
|
2月前
|
JavaScript 前端开发 API
Vue学习笔记3:对比纯JavaScript和Vue实现数据更新的实时视图显示
Vue学习笔记3:对比纯JavaScript和Vue实现数据更新的实时视图显示