zoukankan      html  css  js  c++  java
  • JavaScript高级程序设计之函数

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

    函数是引用类型。

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

    // 这种写法更能表达函数的本质
    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

    没有重载

    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;
    };

    那函数声明的意义?

    // 这段代码是可执行的,因为解析器在向执行环境加载数据时,
    // 函数声明会被提升到顶部。而变量的声明提升状态为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;
    };

    函数的属性和方法

    // 示例函数
    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
  • 相关阅读:
    739. Daily Temperatures
    556. Next Greater Element III
    1078. Occurrences After Bigram
    1053. Previous Permutation With One Swap
    565. Array Nesting
    1052. Grumpy Bookstore Owner
    1051. Height Checker
    数据库入门及SQL基本语法
    ISCSI的概念
    配置一个IP SAN 存储服务器
  • 原文地址:https://www.cnblogs.com/xiankui/p/3755197.html
Copyright © 2011-2022 走看看