function f(){}
f.prototype.foo = "abc";
console.log(f.foo); //undefined
在JS
中,每当创建一个函数对象f1
时,该对象中都会内置一些属性,其中包括prototype
和__proto__
,prototype
即原型对象,它记录着f1
的一些属性和方法。
需要注意的是,prototype
对f1
是不可见的;也就是说f1
不会查找prototype
中的属性和方法
prototype
中定义的属性和方法都是留给自己的后台用的,子类完全可以访问prototype
中的属性和方法
function f(){}
f.prototype.foo = "abc";
var obj = new f();
console.log(obj.foo); //abc
obj -> f.prototype -> Object.prototype -> null