Javascript 发出传递函数return以扩展对象

Javascript 发出传递函数return以扩展对象,javascript,object,Javascript,Object,记住,在杀死信使之前。。。我在学习 我正试图“使用”文件B上函数的返回来扩展文件a上的对象。在将来,我会根据对象的情况扩展多个函数 所以,情况是这样的 文件A(A.html) 因此,文件B的对象应该用于文件A 我在文件中尝试了以下内容 var nickFunction = userNickName; jQuery.extend(_USER.levelOne, nickFunction); 我找了一段很好的时间,但找不到解决办法或有用的帮助。我也在想,因为我将在文件B上有几个函数,在所有函数中创

记住,在杀死信使之前。。。我在学习

我正试图“使用”文件B上函数的返回来扩展文件a上的对象。在将来,我会根据对象的情况扩展多个函数

所以,情况是这样的

文件A(A.html)

因此,文件B的对象应该用于文件A

我在文件中尝试了以下内容

var nickFunction = userNickName;
jQuery.extend(_USER.levelOne, nickFunction);
我找了一段很好的时间,但找不到解决办法或有用的帮助。我也在想,因为我将在文件B上有几个函数,在所有函数中创建另一个函数,将对象作为参数传递

正如我之前所说,这不是一个真实的场景。我只是在练习,试着理解


任何帮助、建议和其他观点都会有所帮助。谢谢

您在这里做了一些特别的事情:

在B.js中,您正在调用:

userNickName(userNick);
但您实际上并没有对返回值做任何操作
user昵称
返回所需的对象,因此不清楚为什么要在此处调用该函数

在A.html中,将函数保存到一个新变量,然后将其传递到
对象。extend

var nickFunction = userNickName;
// nickFunction is now a function, not the result of the function
jQuery.extend(_USER.levelOne, nickFunction);
看起来您想要获取输入的值并将该值添加到昵称。因此,您需要确定应用程序的哪个部分负责从输入中获取值。我认为它应该是A.html而不是B.js,因为它应该可以在不同的html页面上重用。在这种情况下,A.html需要如下内容:

// the value to pass to the subject 
var userNick = $("#inputx").val(); // note val() not text()

// call the function from B.js and pass it the value
// it will return an object which will then be added to _USER
jQuery.extend(_USER.levelOne, userNickName(userNick));
上面的内容应该放在A.html中的
$(document.ready()

下面是一个片段:

//这是在B.js中
函数用户昵称(昵称){
变量信息={
“昵称”:昵称
};
退货信息;
};

var _USER=_USER |{};
_USER.levelOne={
“姓名”:“乔恩”,
“姓氏”:“能源部”,
“年龄”:30岁
};
_USER.levelOne.something=“some”;
$(文档).ready(函数(){
var userNick=$(“#inputx”).val();
extend(_USER.levelOne,USER昵称(userNick));
console.log(\u用户)
})

没有理由将其拆分为两个文件,为什么一个会这样做?谢谢您的回复。因为作为学习的一部分,我试图将函数保存在其他文件中。再次感谢马克的回答,请原谅我对这件事所知甚少。因此,如果我想在另一个文件上有函数,并且代码要向该函数传递一个参数,该参数将是对象属性的值,那么,在文件a(包括文件B)上,用函数的返回扩展对象,是不可能的吗?我正在努力理解。谢谢,马克,当你用这个片段更新帖子时,我正在写。我真的很感激。所以,没有办法让var userNick。。。在文件B上,将值传递给A,然后在A上扩展对象:jQuery.extend(_USER.levelOne,USER昵称(userNick));对吗…?对不起,彼得,我不太确定我是否理解这个问题。一般来说,你几乎可以做任何你想做的事情。您可以让B.js自己获取输入值,但这意味着它与特定的html紧密绑定,因此不可重用。既然这一切都在呼唤正确的东西,那么就没有技术上的理由不能移动东西了。它应该仍然有效。另外,哪个部分负责获取输入值需要在document.ready()中,这样它就不会在DOM准备就绪之前尝试查找该值。非常感谢,Mark。你理解得对。我很困惑,但你把我推到了我原来的道路和正确的道路上。谢谢。
var nickFunction = userNickName;
// nickFunction is now a function, not the result of the function
jQuery.extend(_USER.levelOne, nickFunction);
// the value to pass to the subject 
var userNick = $("#inputx").val(); // note val() not text()

// call the function from B.js and pass it the value
// it will return an object which will then be added to _USER
jQuery.extend(_USER.levelOne, userNickName(userNick));