如题:
以下代码执行后,result的值是什么?
function Test(name) { }
Test.name='Tom';
Test.prototype.name="John";
var result = (new Test('JK')).name;
答案是:John
原因:
js的构造函数中可以添加一些成员,可以在构造函数本身上添加,也可以在构造函数内部的this上添加,通过这两种方式添加的成员,分别称为静态成员和实例成员。
静态成员:在构造函数上添加的成员,只能由构造函数本身访问。
实例成员:在构造函数内部创建的对象成员,只能由实例化的对象来访问。
Test构造函数本身添加的name(’Tom‘)是静态成员,实例对象访问不到,但是能访问到构造函数原型上的name(’John‘)