var r1 = Test.str; // str var r2 = Test.fun(); // fun
var inst = new Test(); var r3 = inst.str; // undefined var r4 = inst.fun(); // undefinedprototype就是一个作用于类的属性。默认情况下,所有Javascript类都会有一个prototype属性,但是类实例没有。
function Test(){};
var p1 = typeof(String.prototype); // object var p2 = typeof(Test.prototype); // object var p3 = typeof(new Test().prototype); // undefined
var p4 = typeof(Object.prototype); // object var p5 = typeof(new Object().prototype); // undefined取值与赋值
在Javascript中,当我们取一个对象中并不存在的属性或是方法时,它会试图查看该对象所对应的类中的prototype属性中是否包含该属性或是方法,而prototype也是一个Javascript对象,若是其中也没有,该prototype又会访问它对应的类的prototype,如此一级级地向上访问,直到找到需要的属性或方法,或是prototype属性为null。 复制代码 代码如下: function Test(){}; Test.test = "str";