好吧,我觉得这真的很有趣,当然,如果我比这更深入地研究代码,我肯定会知道他们是如何做到的。我在说的是 JQuery 库。看看下面的代码 -
$.prototype.mymethod=function(str){
alert(str);
}
//now call the added method
$(document).mymethod('hello') //alert out hello
如果$
是纯普通的 javascript 函数(不使用 jquery 库),则添加的方法不会按预期工作,除非new
之前添加了关键字$
new $(document).mymethod('hello')
但是对于 JQuery,new
关键字是非常可选的!
有人可以在我不必通过他们的图书馆的情况下就他们如何做到这一点提供更多的见解吗?
编辑:经过一番艰苦的努力,我终于找出了上述工作原理的实际根本机制(在不使用new
关键字的情况下构造 JavaScript 对象)!我相信这对于任何想要学习高级 javascript 的人来说都是一个很好的未来参考!
function a(){
return a.prototype;
}
a.prototype.fn=function(){
alert('hello')
}
a.prototype.test=123;
console.log(a().test)//123
a().fn()//alerts out hello