码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript高级程序设计之函数

时间:2014-05-28 09:17:47      阅读:454      评论:0      收藏:0      [点我收藏+]

标签:style   c   class   blog   code   java   

函数实际上是对象,每个函数都是Function类型的实例。

函数是引用类型。

函数名实际上是一个指向函数对象的指针,不会与某个函数绑定。

bubuko.com,布布扣
// 这种写法更能表达函数的本质
var sum = function(num1, num2) {
    return num1 + num2;
};

var anotherSum = sum;
sum = null;

console.log(anotherSum(10, 20));  // 30
console.log(sum(10, 20));  // typeerror: sum is not a function
bubuko.com,布布扣

没有重载

bubuko.com,布布扣
function add(num) {
    return num + 100;
}

function add(num) {
    return num + 200;
}

var result = add(100);  // 300

// 上面的代码和下面的代码没有什么区别
var add = function(num) {
    return num + 100;
};

add = function(num) {
    return num + 200;
};
bubuko.com,布布扣

那函数声明的意义?

bubuko.com,布布扣
// 这段代码是可执行的,因为解析器在向执行环境加载数据时,
// 函数声明会被提升到顶部。而变量的声明提升状态为undefined
console.log(sum(100, 200));  // 300
console.log(anotherSum);  // undefined

function sum(num1, num2) {
    return num1 + num2;
}

var anotherSum = function(num1, num2) {
    return num1 + num2;
};
bubuko.com,布布扣

函数的属性和方法

bubuko.com,布布扣
// 示例函数
var color = "blue",
    obj = {
        color: "red"
    };

function sayColor() {
    return this.color;
}

// ECMAScript5的方法,返回一个绑定了this指针的函数
var objSayColor = sayColor.bind(obj);

console.log(sayColor.length);  // 参数的个数
console.log(sayColor.prototype);  // sayColor {}  原型对象
console.log(sayColor.apply(obj, []));  // red
console.log(sayColor.call(obj, "pink", "yellow"));  // red
console.log(objSayColor());  // red
console.log(sayColor());  // blue
bubuko.com,布布扣

 

JavaScript高级程序设计之函数,布布扣,bubuko.com

JavaScript高级程序设计之函数

标签:style   c   class   blog   code   java   

原文地址:http://www.cnblogs.com/xiankui/p/3755197.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!