交换一个思想,能得到俩思想

JS 函数定义的时候的参数和调用时的关系调用时实际传递的参数可以比定义的参数多或者少,见下面的两个例子<script> function test(a,b,c){console.log(a);}test(‘a’);test(‘a’,’b’,’c’);</script> <script> function test(a){console.log(a);}test(‘a’);test(‘a’,’b’,’c’);</script> JS的方法没有"重载"的概念,后定义的方法会覆盖前面的定义,如下面的例子,都会执行第二个test方法。<script>function test(a){console.log(a);}function test(a,b){console.log(‘next definition’);console.log(a);}test(‘a’);test(‘a’,’b’,’c’);</script> JS方法有一个内置的参数 arguments,,这是很多JS框架"赖以生存”的基础,如下面的例子:<script>function test(){console.log(arguments);var arg = arguments[0];if(arg.val1){console.log(arg.val1);}if(arg.val2){console.log(arg.val2);}}test(‘a’);test(‘a’,’b’,’c’);test({val1:’value1′});</script> call, apply作用就是"借用"别人的方法来调用,就像调用自己的一样.call, apply方法区别是,从第二个参数起, call方法参数将依次传递给借用的方法作参数, 而apply直接将这些参数放到一个数组中再传递, 最后借用方法的参数列表是一样的.下面的例子可以理解为 obj 有一个test方法,被obj1和obj2"借用"了<script>var obj = {test: function(){console.log(this.name);}}var obj1 = {name:’object1 name’};obj.test.call(obj1);console.log(‘——–‘);var obj2 = {name:’object2 name’};obj.test.apply(obj2);</script>

版权声明:本文为博主原创文章,未经博主允许不得转载。

阳光总在风雨后。只有坚强的忍耐顽强的奋斗,

交换一个思想,能得到俩思想

相关文章:

你感兴趣的文章:

标签云: