Javascript 通过return和this关闭公共方法
在阅读和搜索了一段时间之后,我不理解以下两个javascript结构“Duck”和“Dog”之间的任何功能差异:Javascript 通过return和this关闭公共方法,javascript,closures,Javascript,Closures,在阅读和搜索了一段时间之后,我不理解以下两个javascript结构“Duck”和“Dog”之间的任何功能差异: function Duck(){ this.quack = function(){console.log('quack');}; }; function Dog(){ return{ bark : function(){console.log('bark');} } }; 这里是JSFIDLE,我在这里对代码进行了一些处理,以防您需要一个简
function Duck(){
this.quack = function(){console.log('quack');};
};
function Dog(){
return{
bark : function(){console.log('bark');}
}
};
这里是JSFIDLE,我在这里对代码进行了一些处理,以防您需要一个简单的链接来尝试自己:第一种形式允许您使用原型,第二种形式不允许。p、 我以为我是通过给一个函数分配Dog.prototype.bark2来测试的,但我刚才试过了,就像你说的,它不起作用。对于这个过于简单的问题,我深表歉意-谢谢你的链接。如果你省略了
new
关键字,这也会有所不同。由于Duck()
没有显式的return语句,因此它不会返回任何内容,而如果您通过在它前面加上new
将其视为构造函数,它将隐式返回this
(新对象)Dog()
将始终返回一个新对象。