函数深入理解---函数的定义方式

函数的定义方式

//第一种定义方式
function fn1(){
    alert(‘fn1‘);
}

/*函数就是一个非常特殊的对象,是一个Function类的实例,
  其实在内存中存储的操作是通过一个键值对来存储的
*/
console.log(typeof fn1);

//由于函数是一个对象,所以可以通过如下方式定义
//以下是通过函数的拷贝来完成赋值,两个引用并没有指向同一个对象

var fn2 = fn1; //两个的值虽然相等,但是指向的是不同的空间
fn2();

fn1 = function(){
    console.log(‘fn1‘); //fn1的值改变了之后,不会影响fn2的值
}

/*
函数虽然是一个对象,但是却和对象有一些区别,对象是通过
引用的指向完成对象的赋值的,而函数却是通过对象的拷贝来完成的
所以fn1虽然变了,并不会影响fn2
*/
fn2();
fn1();

/*
    对于对象而言,是通过引用的指向来完成赋值的,此时修改o1或者o2会将两个值都完成修改
*/
var o1 = new object();
var o2 = o1; //o1和o2其实指向了同一块空间,当修改o2的值的时候,o1也会被修改
o2.name = ‘leo‘;
alert(o1.name);
时间: 2024-07-30 01:34:12

函数深入理解---函数的定义方式的相关文章

函数深入理解---函数的属性length和方法call 和apply

函数同样有两个非常好用的属性:length 和prototype function fn1(){ } function fn2(num1,num2){ } function fn3(num1){ } //函数的length就表示该函数所期望的参数值 alert(fn1.length) // 0 alert(fn2.length) // 2 alert(fn3.length) // 1 call 和apply方法查可以通过函数名称来调用函数 对于apply而言 有两个参数,第一个是调用的上下文,第

函数深入理解---函数的内部属性arguments和this

arguments function say(num){ /* 在函数对象中有一个属性叫做arguments,通过这个属性可以获取相应的参数值,这个属性 是一个数组,其实就是传递进来的参数 */ console.log(arguments.length); for(var i=0;i<arguments.length;i++){ console.log(arguments[i]); } console.log(num); } /* 在arguments这个对象中有一个callee的方法,argu

函数深入理解---函数的值传递

函数的值传递 //由于函数是对象,所以可以直接把函数参数传递进来 function callFun(fun,arg){ //第一个参数就是函数对象 return fun(arg); } function sum(num){ return num +100; } function say(str){ console.log('hi' + str); } //var say = x; //调用了say函数 callFun(say,'leo'); //调用了sum函数 console.log(call

C++:类的成员函数定义方式

1.成员函数的第一种定义方式:在类声明中只给出成员函数的原型,而将成员函数的定义 放在类的外部. 返回值类型 类名::成员函数名(参数表) {      函数体  } class Point{ public: void setpoint(int,int); //设置坐标点的成员函数setpoint的函数原型 int getx(); //取x坐标点的成员函数getx的函数原型 int gety(); //取y坐标点的成员函数gety的函数原型 private: int x,y; }; void P

Makefile函数eval理解

Makefile函数eval理解 函数"eval"是一个比较特殊的函数.使用它我们可以在我们的Makefile中构造一个可变的规则结构关系(依赖关系链),其中可以使用其它变量和函数.函数"eval"对它的参数进行展开,展开的结果作为Makefile的一部分,make可以对展开内容进行语法解析.展开的结果可以包含一个新变量.目标.隐含规则或者是明确规则等.也就是说此函数的功能主要是:根据其参数的关系.结构,对它们进行替换展开. 函数"eval"的返

JavaScript中的函数的两种定义方式

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <script type="text/javascript"> /*I总结: 1.函数名可以做变量使用,可以赋值,可以传值 2.函数名当参数,传递给另一个函数 */ //==================js中函

五种函数定义方式----第五种是重点

//函数4要素:返回类型,函数名,参数列表,函数体//1.最简单的定义方式/*function show(){echo "hello"; }*///2.有函数的定义方式/*function show($a){echo a;}*///3.有默认值的函数定义/*function show($a="ccc"){ echo $a;}*///4.有返回值的函数定义/*function show($a,$b){  return $a+$b; }*///5.可变参数的函数定义  

javascript函数定义方式及作用域

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getS

6.函数的定义方式,函数的参数问题

涉及内容: 函数的定义方式 函数的文字描述 空操作语句 位置参数 默认参数 关键参数 可变长度参数 函数的定义方式: 函数的文字说明: 为了让别人了解函数的意义,或者避免自己遗忘,可以使用    字符串(不需要赋值,单引号,双引号,多引号都行).#注释   将文字说明写在函数最开始的位置 def function1() : """ 这是这个程序的说明文字 """ print("hello function") return 1