js中继承的几种用法总结(apply,call,prototype)

转载 2016年06月01日 17:05:56

一,js中对象继承

js中有三种继承方式

1.js原型(prototype)实现继承

<SPAN style="BACKGROUND-COLOR: #ffffff"><SPAN style="FONT-SIZE: 18px"><html>  
<body>  
<script type="text/javascript">  
    function Person(name,age){  
        this.name=name;  
        this.age=age;  
    }  
    Person.prototype.sayHello=function(){  
        alert("使用原型得到Name:"+this.name);  
    }  
    var per=new Person("马小倩",21);  
    per.sayHello(); //输出:使用原型得到Name:马小倩  

      
    function Student(){}  
    Student.prototype=new Person("洪如彤",21);  
    var stu=new Student();  
    Student.prototype.grade=5;  
    Student.prototype.intr=function(){  
        alert(this.grade);  
    }  
    stu.sayHello();//输出:使用原型得到Name:洪如彤  
    stu.intr();//输出:5  
</script>  
</body>  
</html></SPAN></SPAN>  

2.构造函数实现继承

<SPAN style="FONT-SIZE: 18px"><html>  
<body>  
<script type="text/javascript">  
    function  Parent(name){  
        this.name=name;  
        this.sayParent=function(){  
            alert("Parent:"+this.name);  
        }  
    }  

    function  Child(name,age){  
        this.tempMethod=Parent;  
        this.tempMethod(name);  
        this.age=age;  
        this.sayChild=function(){  
            alert("Child:"+this.name+"age:"+this.age);  
        }  
    }  

    var parent=new Parent("江剑臣");  
    parent.sayParent(); //输出:“Parent:江剑臣”  
    var child=new Child("李鸣",24); //输出:“Child:李鸣 age:24”  
    child.sayChild();  
</script>  
</body>  
</html></SPAN> 

3.call , apply实现继承

<SPAN style="FONT-SIZE: 18px"><html>  
<body>  
<script type="text/javascript">  
    function  Person(name,age,love){  
        this.name=name;  
        this.age=age;  
        this.love=love;  
        this.say=function say(){  
            alert("姓名:"+name);  
        }  
    }  

    //call方式  
    function student(name,age){  
        Person.call(this,name,age);  
    }  

    //apply方式  
    function teacher(name,love){  
        Person.apply(this,[name,love]);  
        //Person.apply(this,arguments); //跟上句一样的效果,arguments  
    }  

    //call与aplly的异同:  
    //1,第一个参数this都一样,指当前对象  
    //2,第二个参数不一样:call的是一个个的参数列表;apply的是一个数组(arguments也可以)  

    var per=new Person("武凤楼",25,"魏荧屏"); //输出:“武凤楼”  
    per.say();  
    var stu=new student("曹玉",18);//输出:“曹玉”  
    stu.say();  
    var tea=new teacher("秦杰",16);//输出:“秦杰”  
    tea.say();  

</script>  
</body>  
</html></SPAN>  

来源http://www.jb51.net/article/44875.htm

js中继承的几种用法总结(apply,call,prototype)

一,js中对象继承 js中有三种继承方式 1.js原型(prototype)实现继承 script type="text/javascript"> function Pers...

js中继承的几种用法总结(apply,call,prototype)

js中继承的几种用法总结(apply,call,prototype)   看到一篇介绍比较全面、详细的,备份!   本篇文章主要介绍了js中继承的几种用法总结(apply,call,proto...

[转载]js中继承的几种用法总结(apply,call,prototype)

http://www.jb51.net/article/44875.htm

js中继承的几种用法总结(apply,call,prototype)

转:http://www.jb51.net/article/44875.htm 一,js中对象继承 js中有三种继承方式 1.js原型(prototype)实现继承 复制代...

为您解惑:js中继承的几种用法总结(apply,call,prototype).........

js中对象继承有三种继承方式 1.js原型(prototype)实现继承 function Person(name,age){ this.name=name; ...

js中继承的几种用法apply,call,prototype

一,js中对象继承 js中有三种继承方式 1,js原型(prototype)实现继承 [html] view plaincopyprint? span style="B...

JS中的call()方法和apply()方法用法总结

JacvaScript中的call()方法和apply()方法, 1. 每个函数都包含两个非继承而来的方法:call()方法和apply()方法。 2. 相同点:这两个方法的作用是一样的。都是在特定的...

JS中的call()方法和apply()方法用法总结

转载链接:http://blog.csdn.net/ganyingxie123456/article/details/70855586 1. 每个函数都包含两个非继承而来的方法:call()方法...

笔记 JS中的call()方法和apply()方法用法总结

最近又遇到了JacvaScript中的call()方法和apply()方法,而在某些时候这两个方法还确实是十分重要的,那么就让我总结这两个方法的使用和区别吧。 1. 每个函数都包含两个非继承而来...

javascript中apply方法和call方法的作用以及prototype.js中的应用

说明白一点其实就是更改对象的内部指针,即改变对象的this指向的内容。这在面向对象的js编程过程中有时是很有用的。 call函数和apply方法的第一个参数都是要传入给当前对象的对象,及函数内部的t...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:js中继承的几种用法总结(apply,call,prototype)
举报原因:
原因补充:

(最多只允许输入30个字)