Javascript 如何从调用父属性的对象方法调用函数
返回未定义的Javascript 如何从调用父属性的对象方法调用函数,javascript,Javascript,返回未定义的 function myFunc() { omaps: function tes() { return this.parent.x + this.parent.y; } } var myobj = { x: 1, y: 2, z: myFunc() } window.alert(myobj.z); functio
function myFunc() {
omaps: function tes() {
return this.parent.x + this.parent.y;
}
}
var myobj = {
x: 1,
y: 2,
z: myFunc()
}
window.alert(myobj.z);
function myFunc() {
omaps: function tes() {
return myobj.x + myobj.y;
}
}
var myobj = {
x: 1,
y: 2,
z: myFunc()
}
window.alert(myobj.z);
返回未定义的
function myFunc() {
omaps: function tes() {
return this.parent.x + this.parent.y;
}
}
var myobj = {
x: 1,
y: 2,
z: myFunc()
}
window.alert(myobj.z);
function myFunc() {
omaps: function tes() {
return myobj.x + myobj.y;
}
}
var myobj = {
x: 1,
y: 2,
z: myFunc()
}
window.alert(myobj.z);
返回[对象,对象]
从上面的代码片段中,我得到了一个返回,返回值为undefined或[object,object],而不是值3
如何返回预期的值?我这样做是对还是错?在前两个示例中,由于分配给myobj.z的值是调用myFunc的结果,因此没有定义 该函数没有return语句,因此它返回undefined,这是分配给myobj.z的值 在第三个示例中,您正在将一个对象分配给myobj.z,因此可以看到调用从对象构造函数继承的toString方法(即打开的方法)的结果,该方法返回
“[object object]”
您可能想做的是:
var myobj = {
x: 1,
y: 2,
z: {
omaps: function() {
return myobj.x + myobj.y;
}
}
}
window.alert(myobj.z);
您还可以使用(现代浏览器支持的):
您可以将函数分配给
myobj.z
,并使用this.x
和this.y
通过如下调用myobj.z()
来获取属性和值
var myobj = {
x: 1,
y: 2,
get z(){
return this.x + this.y;
}
}
window.alert(myobj.z) // 3
function myFunc() {
return this.x + this.y;
}
var myobj = {
x: 1,
y: 2,
z: myFunc
}
window.alert(myobj.z());
另一种方法是在函数中向对象传递属性,并像下面这样将返回值赋给myobj.z
var myobj = {
x: 1,
y: 2,
get z(){
return this.x + this.y;
}
}
window.alert(myobj.z) // 3
function myFunc() {
return this.x + this.y;
}
var myobj = {
x: 1,
y: 2,
z: myFunc
}
window.alert(myobj.z());
该代码在语法上不正确,您应该无法获取
(对象,对象)
。请先检查粘贴是否正确。另外-请注意,method1:
这里不是一个方法-如果有,它将是一个标签(如果其余的语法正确)。你没有收到语法错误吗?我希望z:myFunc().method1()@mplungjan-我希望未定义(如果语法错误已修复),由于myFunc没有返回语句。方法1 Hjover是否有返回值您是否尝试过第二种方法?您可能会发现出现类型错误,因为调用myFunc时myobj的值为undefined。