我在功能中调用功能时遇到问题。
这是示例代码:
Get_K_Shell_Te
saveInfo()方法是在一个按钮中完成的:
import numpy as np
# this computes various quantities related to the shell in a object oriented way
class Shell_Data:
def __init__(self, data):
self.data = data
def Get_mask(self):
zbar=self.data['z2a1']
y=self.data['y']*1000
mask= np.logical_and(zbar >= 16 ,zbar<= 19 )
return self.mask
def Get_Shell_Te(self):
self.mask =self.Get_mask()
te =self.data['te'][self.mask]
ro =self.data['ro'][self.mask]
rvol =self.data['rvol'][self.mask]
self.Shell_Te=np.sum(te*ro/rvol)/(np.sum(ro/rvol))
print "Shell Temperature= %0.3f eV" % (self.Shell_Te)
return self.Shell_Te
def Get_Shell_ro(self):
mask =self.Get_mask()
te =self.data['te'][mask]
ro =self.data['ro'][mask]
rvol =self.data['rvol'][mask]
radk =self.data['radk'][mask]
self.Shell_ro=np.sum(radk*ro/rvol)/np.sum(radk/rvol)
return self.Shell_ro
因此,有2个表单,您填写您的电子邮件和姓名。通过单击“保存”按钮,DIV将消失(这有效),另一个DIV将出现在文本中,如下所示:Name =(name)|电子邮件=(电子邮件)。
我遇到问题,为相应的行调用saveInfo()的returnEmail()(其中有'Name =')。
我试着像这样写:
<script>
function saveInfo() {
function returnEmail() {
var _e = document.getElementById("email").value;
return _e;
}
function returnName() {
var _n = document.getElementById("name").value;
return _n;
}
}
</script>
我知道上面的脚本不正确,这不是我试图返回它的唯一方法。
答案 0 :(得分:4)
看起来你正试图将这些函数返回以后使用。尝试这样做。此函数现在返回一个具有两个函数的对象。
function saveInfo() {
return {
returnEmail: function() {
var _e = document.getElementById("email").value;
return _e;
},
returnName: function() {
var _n = document.getElementById("name").value;
return _n;
}
}
}
以前,您的saveInfo
函数未返回任何内容,因此
saveInfo().returnEmail();
将评估为
undefined.returnEmail();
你会收到错误
答案 1 :(得分:2)
您需要从函数saveInfo
返回公开的函数。此时,您的代码仅声明该函数,但不返回任何内容。因此,saveInfo
会返回undefined
。以下方法是显示模块模式的实现,以显示您的函数之外的公共成员。
function saveInfo() {
var returnEmail = function () {
var _e = document.getElementById("email").value;
return _e;
}
var returnName= function () {
var _n = document.getElementById("name").value;
return _n;
}
return {
returnEmail :returnEmail,
returnName :returnName
}
}
答案 2 :(得分:1)
如果您将其设置为saveInfo().returnEmail();
,则可以执行以下操作。 saveInfo返回一个包含returnEmail方法的对象。
<script>
function saveInfo() {
// Do any desired logic
return {
returnEmail: function() {
var _e = document.getElementById("email").value;
return _e;
},
returnName: function() {
var _n = document.getElementById("name").value;
return _n;
}
}
}
</script>