【发布时间】:2011-08-20 22:37:11
【问题描述】:
这两个语句在 Javascript 中有区别吗?
function p() {
this.do = function(){alert('cool')};
}
还有这个?:
function p(){};
p.prototype.do = function(){alert('cool')};
还有一件事,你为什么不能做:
function p(){};
p.do = function(){alert('cool')};
非常感谢!
【问题讨论】:
-
p是作为构造函数调用还是作为常规函数调用? (那种有很大的不同:)) -
构造函数...我认为....我不完全确定,我是新手,抱歉 :(
-
等等,是的构造函数。我很确定
-
p.do = ...在p构造函数本身上创建一个do属性。但是,p实例(例如var p1 = new p();)继承自p.prototype对象,而 not 继承自p函数对象本身。这就是为什么你“做不到”。
标签: javascript function inheritance prototype-programming prototypal-inheritance