javascript

Posted 叫我大头

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript相关的知识,希望对你有一定的参考价值。

关于 call  与   apply 区别 :

          call与apply的第一个参数都是需要调用的函数对象,在函数体内这个参数就是this的值,剩余的参数是需要传递给函数的值(该函数的参数),call与apply的不同就是call传的值可以是任意的,而apply传的剩余值必须为数组

例如:function add(a, b) { return a + b; }

function sub(a, b) { return a - b; }

/*apply用法

* var a1 = sub.apply(add, [4, 2]);

*var a2= add.apply(sub, [4, 2]);  

*/

var a1 = sub.call(add, 4, 2);

var a2= add.call(sub, 4, 2);

输出:a1=2  a2=6

 

JS模仿继承

  function fun1() {

            this.a = 123;

        this.add = function () { return  this.a }

        }

        function fun2() {

            this.a = 6;

        }

        var f1=new fun1()

        var f2=new fun2()

        var a = f1.add.call(f2);  // a输出的是6

这里就是把啊f1的方法拿给f2来使用,f2便可以使用f1中所有的方法,这不正是高级语言中继承的概念喽。当然根据综上可扩展出多继承,使用多个call便可以实现多继承

   function fun1() {

 

            this.add = function () { return this.a }

        }

        function fun2() {

   

            this.sub = function () { return this.a-this.b }

        }

        function fun3() {

            this.a = 10;

            this.b = 2;

             fun1.call(this);

            fun2.call(this);

        }

        var f3 = new fun3()

        alert(f3.add());  // 8

        alert(f3.sub()); // 10

以上是关于javascript的主要内容,如果未能解决你的问题,请参考以下文章

将任意数量的参数传递给Javascript函数[重复]

JavaScript获取两个数之间的任意随机数

JavaScript——正则总结

javascript如何实现图片任意角度的旋转?

javascript 监听任意元素大小调整

只用这 6 个字符,就可以写出任意 JavaScript 代码!