`

js引用类型变量之Function类型(二)

 
阅读更多

函数的属性和方法:

ECMAScript中的函数是对象,因此也有属性和方法,每个函数包含两个属性和方法:length和prototype.其中,length属性表示函数希望接受的参数的个数举个例子;

function sayName(name){

alert(name);

}

 

function sum (num1,num2){

return num1+num2;

}

 

function sayHi(){

return alert("hi");

}

 

console.log(sayName.length);  //1

console.log(sum.length);       //2

console.log(sayHi.length);    //0

在ECMASCript所定义的全部属性中,prototype属性最为非一般.对于ECMAScript中的引用类型来说,prototype是保存他们所有实例方法的真正所在.换句话说,诸如toString()和valueOf()等方法实际上那个都保存在prototype名下,只不过都是通过各自的实例访问罢了.

 

每个函数都包含两个非继承而来的方法:apply()和call().两个方法的用途都是在特定的作用域中调用函数,实际上等于设置函数体内this对象的值.首先,apply()方法接受两个参数,一个是在其中运行的函数,另一个是参数数组.其中,第二个也可以是Array数组,也可以是arguments对象.举个例子;

function sum(num1,num2){

  return num1+num2 ;

  }

  function callSum1(num1,num2){

  return sum.apply(this,arguments);

  }

 

  function callSum2(num1,num2){

  return sum.apply(this,[num1,num2]);

  }

  alert(callSum1(10,10));

  alert(callSum2(10,10));

 而call方法作用和apply()方法一样,只是接受参数的方式不同而已,call()方法给函数传递的参数必须逐个列举出来.



 另外,还定义了一个方法:bind(),这个方法会创建一个函数的实例,其this的值会被绑定到传给bind()函数的值.

举个例子:window.color = "red";

  var o = {color :"blue"};

  function sayColor(){

  console.log(this.color);

  }

  var objectSayColor = sayColor.bind(o);

  objectSayColor();

 上面的例子中,sayColor()函数调用了bind(0函数并且传入对象o,创建了objectSayColor函数,objectSayColor的this的值等于o.因此,即使在全局作用域中调用这个函数,也会看到"blue".

 

 

 

  • 大小: 24.1 KB
分享到:
评论

相关推荐

    JavaScript基础篇(3)之Object、Function等引用类型

    阅读目录 Object类型 1、通过构造函数来创建 2、通过字面量表示法来创建对象 Array类型 同样Array也有两种创建方式: ...我们在《一步步学习javascript基础篇(1):基本概念》中简单的介绍了五种基本数据类型Undef

    JavaScript引用类型Object常见用法实例分析

    本文实例讲述了JavaScript引用类型Object常见用法。分享给大家供大家参考,具体如下: 1、JavaScript数据类型 (1)基本类型 5种基本类型:Undefined、Null、Boolean、Number、String (2)引用类型 5种引用类型:Object...

    Javascript中引用类型传递的知识点小结

    Object类型都是引用类型.(function,array,date,regexp..) JS哪些类型是值传递? 基本类型都是值传递.值传递就是重新copy一个副本进行传递. 如何把值类型的变量以引用类型的方式进行传递? 通过把基础类型包装之后...

    javascript的变量、传值、传址、参数之间关系

    先把收获晾一下: ...基本类型的传递如同基本类型变量的复制一样,而引用类型的则如同引用类型变量的复制一样。“  ”当一个变量复制引用类型的值时,同样也会将存储在变量对象中的值复制一份放到为新变量分配的

    js基础面试题.html

    > console.log(typeof (function(){ })) //function 引用类型 > console.log(typeof ([1,"a",,true])) //Array 引用类型 > console.log(typeof ({ a:10, b: 20})) //Object 或者json 引用类型 > console.log(typeof ...

    JS数据类型(基本数据类型、引用数据类型)及堆和栈的区别分析

    当我们把变量赋值给一个变量时,解析器首先要确认的就是这个值是基本类型值还是引用类型值 基本数据类型:数字(Number)、字符串(String)、布尔(Boolean)、空(Null)、未定义(Undefined) 引用数据类型:也就是...

    JavaScript Function函数类型介绍

    而且都与其他引用类型一样具有属性和方法; // 由于函数是对象,因此函数名实际上也是一个指向函数对象的指针; 一 函数的声明方式 1.函数声明方式 function box(num1,num2){ return num1+num2; } 2.函数表达式...

    javaScript中变量的案例和值类型和引用类型的传递的案例

    function fn1(){ //在函数中,没有使用var关键字声明的变量是全局变量 //在函数中,使用var关键字声明的变量是局部变量 //变量b和变量c是全局变量,变量a是局部变量 var a = b = c = 20; console.log(a); //20 ...

    javascript Function函数理解与实战

    既然指向了一个引用类型的内存地址,那你也可以简单的把我们定义的函数理解为一个变量,这个变量指向了一个引用类型的地址,这个地址指向了Function 对象的一个实例. 既然我们定义的函数其实是一个变量,那这个函数实例

    vue,css,js,小程序,常见面试题,仅供参考

    1、js数据类型 基本数据类型 Number、String、Boolean、Null、Undefined、Symbol、bigInt 引用数据类型 object、Array、Date、Function、RegExp 2、js变量和函数声明的提升 在js中变量和函数的声明会提升到最顶部...

    javascript function(函数类型)使用与注意事项小结

    每个函数都是Function类型的实例,而且都与其他引用类型一样具有属性和方法。由于函数是对象,因此函数名实际上也是一个指向函数对象的指针。 学习要点: 1.函数的声明方式 2.作为值的函数 3.函数的内部属性 4.函数...

    详解js的六大数据类型

    前面说到js中变量是松散类型的,因此有时候我们需要检测变量的数据类型。 typeof操作符可以检测变量的数据类型(输出的是一个关于数据类型的字符串)。 返回如下6种字符串:number,string,boolean,object,undefined,...

    01 基础.html

    引用计数:通过使用次数来判断是否使用,当声明了一个变量并将一个引用类型赋值给该变量时 则这个值得引用次数就是1,相反如果包含这个值引用的变量又取得了另一个值则这个值得引用 次数就减1当这个引用次数变成0...

    JavaScript 数据类型

    引用数据类型:对象(Object)、数组(Array)、函数(Function)。 注:Symbol 是 ES6 引入了一种新的原始数据类型,表示独一无二的值。 JavaScript 拥有动态类型 JavaScript 拥有动态类型。这意味着相同的变量可用作...

    浅谈JavaScript 函数参数传递到底是值传递还是引用传递

    在传统的观念里,都认为JavaScript函数传递的是引用传递(也称之为指针传递),也有人认为是值传递和引用传递都具备。那么JS的参数传递到底是怎么回事呢?事实上以下的演示也完全可以用于Java 首先来一个比较简单的,...

    javascript数据类型详解

    2.引用数据类型(1种):Object 例如: Function Date Array … 在js中定义变量的时候无需指定类型。比如定义一个变量 var num = 16, 而此时我们也可以把一个字符串赋值给这个变量 num = “this is a string”,这样...

    深入理解JavaScript的值传递和引用传递

    值得注意的是还有另外三种类型: Array、Function和Object,它们通过引用来传递。从底层技术上看,它们三都是对象。 基本数据类型 如果一个基本的数据类型绑定到某个变量,我们可以认为该变量包含这个基本数据类型的...

    深入理解JavaScript中的传值与传引用

    变量的值被复制出一份,与原来的值将不相干,也就是说即使新的值被修改,原来的值也不会改变,在JavaScript中基本类型都是传值的. 代码如下:function testPassValue(){ var m=1; var n=2; //将m,n的值复制一份,传递到...

    javascript函数的解释

    49.引用一个文件式的JS:<script type="text/javascript" src="aaa.js"> 50.指定在不支持脚本的浏览器显示的HTML:<noscript></noscript> 51.当超链和ONCLICK事件都有时,则老版本的浏览器转向a.html,否则转向b.html.例...

    JS中原始值和引用值的储存方式示例详解

    引用值指的是复合数据类型的值,包括:Object、Function、Array、Date、RegExp 根据数据类型不同,有的变量储存在栈中,有的储存在堆中。具体区别如下: 原始变量及他们的值储存在栈中,当把一个原始变量传递给另一...

Global site tag (gtag.js) - Google Analytics