首先在js中的继承是Prototype-based 。不像一般的oo语言,比如java,c++是Class-based 的。我们来比较一下这两种方式 :1 在Class-based 中的类和实例是不同的实体,而在Prototype-based中所有对象都是实例。2 在Class-based中定义一个类使用class关键字来定义。实例化一个对象,使用构造方法。而在Prototype-based,定义和创建一个对象都使用构造器函数。3 在Class-based中构造一个继承,需要定义一个类,然后作为存在的类的子类。而在Prototype-based中,则是需要标记这个对象作为构造器函数的pr ...
在看The.Art.and.Science.of.JavaScript 的时候,看到了这个问题,就是在javascript中如何判断一个方法是new调用还是一般调用,在书中给出的代码是function Element(){ if(this==window || 'Element' in this){ console.log("normal");}else{ console.log("new");}}可是这个代码不能解决两个问题:1比如加上下面的代码: Element.prototype.Elemen ...
上次pro js读书笔记里面,我说有段代码书里面有错,可是自己不知道怎么改,偶然的机会在g9 老大的blog上看到了解决方法。http://blog.csdn.net/g9yuayon/archive/2007/04/18/1568980.aspx错误代码:function User( properties ) { var temp=this; for ( var i in properties ) { (function(){ temp[ "get" + i ] = function() { ...
- 2007-09-04 00:11
- 浏览 4846
- 评论(7)
1首先我们来看一下js中的public method:// 创建一个User的构造函数function User( name, age ){ this.name = name; this.age = age;}// 加一个新的函数getName到User的prototype.User.prototype.getName = function(){ return this.name;};//加另一个函? ...