Javascript 有没有办法用点语法实例化这个类?
我有以下javascript类/实例化/方法调用:Javascript 有没有办法用点语法实例化这个类?,javascript,Javascript,我有以下javascript类/实例化/方法调用: var myClass = function(a){ var myElement = a, myMethod = function(){ alert(myElement.html()); } return { myMethod: myMethod } } var myObj = new myClass($('#elementA')); myObj
var myClass = function(a){
var myElement = a,
myMethod = function(){
alert(myElement.html());
}
return {
myMethod: myMethod
}
}
var myObj = new myClass($('#elementA'));
myObj.myMethod();
和我的标记:
<div id="elementA">This is the text in elementA</div>
这是elementA中的文本
这是你的电话号码
有没有办法用点语法实例化这个类?理想情况下,它看起来像:myObj.myClass()
?与jquery实例化新小部件的方式相同($().tabs();
)。我需要重组我的对象吗?如果是,怎么做
如果你能推断出我误解了这其中的任何部分,请随时纠正我。谢谢你的帮助 新小提琴:
把所有的东西都链接起来有什么不对?不过,如果你打算做这样的事情。。。我会因为提出这一点而被击倒,但这种语法对你来说可能太棒了:
var myClass = function(a){
var myElement = a,
myMethod = function(){
alert(a.html());
}
return {
myMethod: function() { return new myMethod(); }
}
}
这样做的唯一好处是避免使用
new
关键字。这是我处理类似问题的方式:
var myObj = {
myMethod: function(elem) {
alert($(elem).html()); //do your alert
return this; //return the object for chanining
},
myOtherMethod: function() {
alert("This is something other method");
return this;
}
}
myObj.myMethod("#elementA").myOtherMethod();
这是小提琴:
只需创建一个新对象,其var
名称为您想要的任何名称
如果要使用new
,可能需要将其与构造函数一起使用。您还可以使用Object.create()
并传递原型
我唯一一次使用方法返回对象是在我使用闭包时,我有需要更改的变量。。。一个完美的例子是计时器。看看jquery插件是如何做到这一点的: