jQuery fn中的"prototype"?+ jquery函数内的普通javascript代码?

Pau*_*aul 14 javascript jquery prototype


我想知道jQuery中的原型意味着什么?我通常会找到关于"Prototype"的信息 - 框架 - 但是这里是jQuery里面的"原型"......?你能告诉我什么时候最好用吗?

另外,你能告诉我:为什么我们在jQuery插件中使用"普通javascript"代码而不是jquery代码,就像在这个例子中一样?这是一个快速问题吗?

这是我的例子:(一个twitter的插件)

谢谢你的回答!

$.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);  
    });  
};  
Run Code Online (Sandbox Code Playgroud)

Mat*_*all 42

我想知道jQuery中"原型"是什么意思

名为Prototype的JavaScript库的名称来自JavaScript原型.在JavaScript中,原型是提供继承的机制(与类相反).示例:String.prototype引用s 的prototype对象String,其中包含可以在any上调用的方法(以及其他内容)String.

在您的问题的示例中,twitter插件创建一个String.prototype名为的新函数makeLinks,它允许函数调用,例如:

text.makeLinks()
Run Code Online (Sandbox Code Playgroud)

哪里text是一个字符串.

更多关于原型的阅读:


为什么我们在jQuery插件中使用"普通javascript"代码而不是jQuery代码?

jQuery不是JavaScript的替代品.它是一个JavaScript库,旨在使编写JavaScript更容易,否则必须使用DOM API.你在jQuery插件中看到"vanilla"JavaScript,因为实际上没有更好的方法来做JS所做的事情.

jQuery是JavaScript.它通过提供更简单的API来简化编写其他JavaScript的过程,这些API在浏览器中保持一致.这不是DOM的情况,因为各种浏览器供应商已经创建了大多数相同但不相同的DOM API .

Quirksmode是一个流行的网站,用于记录这些不一致性(在CSS和JavaScript中).


欢迎来到网站开发!


Ort*_*iga 11

Prototype是一个纯粹的JavaScript功能.

它用于向已定义的对象添加属性或方法(有点像扩展).例如:

function myCustomObject(){
}

myCustomObject.prototype.myCustomAttr = "Hello";

var instance = new myCustomObject();

alert(instance.myCustomAttr); // alerts Hello
Run Code Online (Sandbox Code Playgroud)