• javacript中apply和call的区别


    apply:方法能劫持另外一个对象的方法,继承另外一个对象的属性.   接受的参数是一个字符串。

    call:和apply的意思一样,只不过是参数列表不一样. 接收的参数是一个数组。

    例如:

    <script>
    window.firstName = "diz"; 
    window.lastName = "song"; 
    var myObject = {firstName: "my", lastName: "Object"}; 
    function HelloName(){
        console.log("Hello " + this.firstName + " " + this.lastName, " glad to meet you!"); 
    } 
    HelloName.call(window);
    HelloName.call(myObject);
    </script>
    
    运行结果为: 
    Hello diz song glad to meet you! 
    Hello my Object glad to meet you! 

    HelloName方法调用window或myObject中的对象属性。

    <script type="text/javascript">
        /*定义一个人类*/
        function Person(name,age)
        {
            this.name=name;
            this.age=age;
        }
        /*定义一个学生类*/
        functionStudent(name,age,grade)
        {
            Person.apply(this,arguments);
            this.grade=grade;
        }
        //创建一个学生类
        var student=new Student("qian",21,"一年级");
        //测试
        alert("name:"+student.name+"
    "+"age:"+student.age+"
    "+"grade:"+student.grade);
        //大家可以看到测试结果name:qian  age:21  grade:一年级
        //学生类里面我没有给name和age属性赋值啊,为什么又存在这两个属性的值呢,这个就是apply的神奇之处.
    </script>
  • 相关阅读:
    利用Session和HashTable制作购物车实例
    在windows 7上安装Maven2.2.1
    tail & cut 命令
    软件开发常用名词中英文对照
    字符,字节和编码
    grep 简介
    HSQLDB: java程序使用hsqldb 入门教程 java启动hsqldb
    eclipse 安装 maven 插件
    JNI 返回结构体参数
    HSQLDB 安装与使用
  • 原文地址:https://www.cnblogs.com/gide/p/4503267.html
Copyright © 2020-2023  润新知