我的jquery脚本中有两个原型:
script1.prototype.initScript = function() {
//first one
this.saveGrid = function () {
alert("here");
}
};
script1.prototype.otherFunction = function () {
//second
//script1.initScript.saveGrid ?
};
我想在saveGrid
中致电otherFunction
。我怎么能这样做?
编辑: 那里?
script1.prototype.initScript = function() {
//first one
this.saveGrid = function () {
alert("here");
}
};
script1.prototype.otherFunction = function () {
//second
$('button').on("click", function(){
//call savegrid here
});
};
感谢。
答案 0 :(得分:3)
您可以在this
上访问此功能,就像您在创建函数saveGrid
时已经在示例中所做的那样。
你应该问自己,如果这是一个好主意,在另一个函数中创建一个函数并重新使用它们。如果您在otherFunction
之前致电initScript
,会发生什么?
function script1() {}
script1.prototype.initScript = function() {
this.saveGrid = function() {
alert("here");
}
};
script1.prototype.otherFunction = function() {
this.saveGrid();
};
var s = new script1();
s.initScript();
s.otherFunction();
对于第二个示例,您必须在创建事件侦听器之前存储this
。
function script1() {}
script1.prototype.initScript = function() {
this.saveGrid = function() {
alert("here");
}
};
script1.prototype.otherFunction = function() {
var that = this;
$('button').on("click", function(){
that.saveGrid();
});
};
var s = new script1();
s.initScript();
s.otherFunction();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button>click me</button>
答案 1 :(得分:0)
原型取决于类型。 正确的方法被定义为原型,因此您可以在不同的情况下调用它们
script1.prototype.saveGrid=function () {
alert("here");
}
script1.prototype.initScript = function() {
//first one
this.saveGrid()
};
script1.prototype.otherFunction = function () {
//second
//this.saveGrid()
};`
或者您可以定义一个对象,然后将原型关联起来
var script1=(function () {
function initScript(){
this.saveGrid();
}
function otherFunction(){
this.saveGrid();
}
script1.prototype.saveGrid=function () {
alert("here");
}
});