我对编码javascript插件非常陌生,我在过去半年左右的时间内构建了自己的2个插件,基本上是我个人使用的插件插件。现在我通常在IFFE中使用以下模式。
$.Mypluginname = function() {
this.anotherfunction(); // works !!
}
$.mypluginname.prototype.anotherfunction(){
// this points to $.Mypluginname awesome!!!
}
$.mypluginname.prototype.anotherfunction(){
// this points to $.Mypluginname awesome!!!
}
但是最近我发现了一个更好的JS插件模式,看起来是这样,
$.Mypluginname = function() {
}
$.mypluginname.prototype = {
anotherfunction : function(){
// this points to $.Mypluginname awesome!!! ... but how ?
}
mypluginname : anotherfunction(){
// this points to $.Mypluginname awesome!!! ... but how ?
}
}
了解this
如何仍然指向主要功能,我的问题是如何?
这是如何在下面的功能:
$.Mypluginname = function() {
this.anotherfunction(); // works !! ... can you answer this quinten.
}
?
任何人都可以解释一下吗?
编辑 ::此thread共有12个答案。没有一个回答我的问题,这首先不是“原型如何工作”。阅读该线程肯定会增强我对JS原型的了解,但我不知道如何解释this
如何在以下设计模式中起作用。
$.mypluginname.prototype = {
anotherfunction : function(){
// this points to $.Mypluginname awesome!!! ... but how ?
}
mypluginname : anotherfunction(){
// this points to $.Mypluginname awesome!!! ... but how ?
}
}
谢谢。
亚历-Z。
答案 0 :(得分:1)
看起来就像你在问如何
$.mypluginname.prototype.anotherfunction = function() {
// this points to $.Mypluginname awesome!!!
}
与
的作用相同$.mypluginname.prototype = {
anotherfunction : function(){
// this points to $.Mypluginname awesome!!! ... but how ?
}
}
答案是它们在功能上是相同的; (一个正在替换一个键,一个正在替换整个原型,但是)在这两种情况下你在原型上设置anotherFunction
。
答案 1 :(得分:0)
<head>
<style>
@media only screen and (max-width: 771px) {
/*add your class and code here*/
}
</style>
</head>
的值取决于您调用函数的方式,而不是您定义函数的方式和位置。你在问题中所有代码的不同变化都是关于函数的定义,而不是函数的调用,所以它们没有任何区别。
答案 2 :(得分:0)
这始终是对其Object的引用。你正在创建的是一个构造函数。 Javascript是一种使用原型(原型继承)继承的语言。所以一旦你使用new运算符调用构造函数,就像这样:
var someObj = new myConstrFunction(param);
它会返回一个包含变量和函数的Object。
console.log(someObj)
//basicly returns something like this (simplyfied)
//{anotherFunction:function(){},someVal:"",someOtherval:true};
这些函数和变量可以通过使用&#34; this&#34;来引用它们的对象。 在大多数情况下。