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
  • 相关阅读:
    其他标签
    数组和全局变量
    字符串处理
    运算符
    PHP安装配置工具
    String、StringBuffer与StringBuilder之间区别
    mybits——1
    异常
    ubuntu 系统错误:Error : BrokenCount > 0解决
    ubuntu配置VScode
  • 原文地址:https://www.cnblogs.com/xiankui/p/3755197.html
Copyright © 2011-2022 走看看