码迷,mamicode.com
首页 > 移动开发 > 详细

javacript中apply和call的区别

时间:2015-05-14 16:16:05      阅读:259      评论:0      收藏:0      [点我收藏+]

标签:

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+"\n"+"age:"+student.age+"\n"+"grade:"+student.grade);
    //大家可以看到测试结果name:qian  age:21  grade:一年级
    //学生类里面我没有给name和age属性赋值啊,为什么又存在这两个属性的值呢,这个就是apply的神奇之处.
</script>

 

javacript中apply和call的区别

标签:

原文地址:http://www.cnblogs.com/gide/p/4503267.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!