我确信这真的很简单,但为什么以下不起作用.
var o = function() { };
o.prototype.print = function( ) { console.log("hi") };
o.print(); // console message: Object function o() { } has no method 'print'
Run Code Online (Sandbox Code Playgroud)
在这里小提琴
UPDATE
为什么这也行不通
var o = function() { };
o.prototype.print = function( ) { console.log("hi") };
var c = Object.create( o );
c.print();
Run Code Online (Sandbox Code Playgroud)
如有必要,我可以开始一个新问题.
我确信这真的很简单,但为什么以下不起作用.
o 是新对象的构造函数,您必须创建一个新对象才能使用原型方法:
var x = new o();
x.print();
Run Code Online (Sandbox Code Playgroud)
为什么这也行不通
因为Object.create需要原型而不是对象:
var o = function() { };
o.prototype.print = function( ) { console.log("hi") };
var c = Object.create( o.prototype );
c.print();
Run Code Online (Sandbox Code Playgroud)
也可以看看