如何在Javascript中添加和调用构造函数(使用JQuery)

如何在Javascript中添加和调用构造函数(使用JQuery),javascript,constructor,Javascript,Constructor,我使用下面的代码创建了一个对象文本。一切正常 然而,当我试图通过创建一个对象构造函数和一个对应的对象来重写对象文本,然后使用“点语法”执行该方法时,什么也没有发生。我不清楚我做错了什么。下面的示例使用JQuery 多谢各位 对象文字(工作) 无论什么 #提夫{ 位置:绝对位置; 宽度:200px; 高度:200px; 背景:#f00; } $(文档).ready(函数(){ var myObj={}; myObj.doThing=函数(){ $(“#theDiv”)。切换(3000); };

我使用下面的代码创建了一个对象文本。一切正常

然而,当我试图通过创建一个对象构造函数和一个对应的对象来重写对象文本,然后使用“点语法”执行该方法时,什么也没有发生。我不清楚我做错了什么。下面的示例使用JQuery

多谢各位

对象文字(工作)


无论什么
#提夫{
位置:绝对位置;
宽度:200px;
高度:200px;
背景:#f00;
}
$(文档).ready(函数(){
var myObj={};
myObj.doThing=函数(){
$(“#theDiv”)。切换(3000);
};
myObj.doThing();
});
带对象的构造函数(非工作)


无论什么
#提夫{
位置:绝对位置;
宽度:200px;
高度:200px;
背景:#f00;
}
$(文档).ready(函数(){
函数构造函数示例(){
this.move=函数(){
$(“#theDiv.”开关(3000);
};
};
var objExample=new ConstructorExample();
objExample.move();
});

第二个示例中出现语法错误

更改此项:

$("#theDiv".toggle(3000);
为此:

$("#theDiv").toggle(3000);

这不是为了解决您的问题(因为Joseph已经回答了),而是一个更好的实践,供您参考:

更改为:

function ConstructorExample (){
  this.move =  function () {
    $("#theDiv").toggle(3000);
  };
};
改为:

var ConstructorExample = function ConstructorExample () {
  this.node = $("#theDiv");
};
ConstructorExample.prototype.move = function () {
  if (!!this.node) {
    this.node.toggle(3000);
  }
};

它的行为相同,但通过使用原型链,它不会在每次启动对象时都创建移动函数(速度更快),而且它可以被原型继承。

我很尴尬。谢谢。
function ConstructorExample (){
  this.move =  function () {
    $("#theDiv").toggle(3000);
  };
};
var ConstructorExample = function ConstructorExample () {
  this.node = $("#theDiv");
};
ConstructorExample.prototype.move = function () {
  if (!!this.node) {
    this.node.toggle(3000);
  }
};