我想知道jQuery中的原型意味着什么?我通常会找到关于“Prototype”的信息 - 框架 - 但是这里是jQuery里面的“原型”......?你能告诉我什么时候最好用吗?
另外,你能告诉我:为什么我们在jQuery插件中使用“普通javascript”代码而不是jquery代码,就像在这个例子中一样?这是一个快速问题吗?
这是我的例子:(推特插件)
感谢您的回答!
$.each(data, function(i, item) {
holder.append("<p>"+item.text.makeLinks()+"</p>");
});
//...further in the code
String.prototype.makeLinks = function() {
return this.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+/, function(str) {
return str.link(str);
});
};
答案 0 :(得分:42)
我想知道“原型”在jQuery中意味着什么
名为Prototype的JavaScript库的名称来自JavaScript prototype。在JavaScript中,prototype是提供继承的机制(与类相反)。示例:String.prototype
引用prototype
的{{1}}对象,其中包含可以在任何String
上调用的方法(其中包括)。
在你的问题的例子中,twitter插件在String
上创建了一个名为String.prototype
的新函数,它允许函数调用,例如:
makeLinks
其中text.makeLinks()
是一个字符串。
更多关于原型的阅读:
为什么我们在jQuery插件中使用“普通javascript”代码而不是jQuery代码?
jQuery不是JavaScript的替代品。它是一个JavaScript库,旨在使编写JavaScript 更容易,否则必须使用DOM API。你在jQuery插件中看到“vanilla”JavaScript,因为没有更好的方法来做什么JS做的。
jQuery是JavaScript。它通过提供一个在浏览器中保持一致的更简单的API,简化了编写其他JavaScript的过程。 DOM不是这种情况,因为各种浏览器供应商已经创建了主要 相同但不完全相同的DOM API。
Quirksmode是一个流行的网站,用于记录这些不一致性(在CSS和JavaScript中)。
欢迎使用网站开发!
答案 1 :(得分:11)
Prototype是纯粹的javascript功能。
它用于向已定义的对象添加属性或方法(有点像扩展)。例如:
function myCustomObject(){
}
myCustomObject.prototype.myCustomAttr = "Hello";
var instance = new myCustomObject();
alert(instance.myCustomAttr); // alerts Hello