最近好奇了解了一点javascrip的继承机制,我是做java的,javascript的继承困扰了我很久,Google了很久,果然天下文章一大抄,写博客的家伙很多,有自己思考和负责任的更少,抱怨
这么多。直到发现《javascript高级编程》这本书才豁然开朗,如果你是专职做前端的,建议阅读它,虽然只有薄薄的900多页,你妹呀,任何一本深入的技术书都好几百页 !!!
javascript的实现有两种途径,通过prototype或者通过构造函数实现,各有优缺点,最好的方式是杂之,取各自之长。
示例如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
<script language="javascript" type="text/javascript"> function Persion(name, age) { this.name = name; this.age = age; } Persion.prototype.print= function() { console.log("Persion.prototype.print" + " [name=" + this.name + "], [age="+ this.age + "]" ); } function Student(name, age, stuNo) { Persion.call(this, name, age); this.stuNo = stuNo; } Student.prototype = Persion.prototype; Student.prototype.printSNo = function() { console.log("Student.prototype.printSNo:[stuNo=" +? this.stuNo +"]"); } var p = new Student("javacoder.cn", 149, "class 2, Grade 3"); p.print(); p.printSNo(); </script> |
输入为:
Persion.prototype.print [name=javacoder.cn], [age=149]
Student.prototype.printSNo:[stuNo=class 2, Grade 3]
call()是javascript的一个内置函数,用于改变当前函数的执行上下文,好奇的同学可以自行Google一下
Posted in: Uncategorized
Comments are closed.