这里有新鲜出炉的 Javascript 教程,程序狗速度看过来!
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
这篇文章主要介绍了 Javascript 普通函数和构造函数的区别的相关资料, 需要的朋友可以参考下
普通函数和构造函数的区别
在命名规则上,构造函数一般是首字母大写,普通函数遵照小驼峰式命名法。
在函数调用的时候:
function fn() {}
构造函数:1. new fn( ) 2 . 构造函数内部会创建一个新的对象,即 f 的实例 3. 函数内部的 this 指向 新创建的 f 的实例 4. 默认的返回值是 f 的实例
普通函数:1. fn( ) 2. 在调用函数的内部不会创建新的对象 3. 函数内部的 this 指向调用函数的对象(如果没有对象调用,默认是 window) 4. 返回值由 return 语句决定
构造函数的返回值:
有一个默认的返回值,新创建的对象(实例); 当手动添加返回值后(return 语句):
1. 返回值是基本数据类型 --> 真正的返回值还是那个新创建的对象(实例) 2. 返回值是复杂数据类型(对象)--> 真正的返回值是这个对象
看一个常见的面试题
- <script>
- function foo() {
- var f2 = new foo2();
- console.log(f2); //{a: 3}
- console.log(this); //window
- return true;
- }
- function foo2() {
- console.log(this); //foo2类型的对象 不是foo2函数
- // this.age = 30;
- return {
- a: 3
- };
- }
- var f1 = foo();
- console.log(f1); // true
- </script>
来源: http://www.phperz.com/article/17/0527/330637.html