关于JS函数定义问题的咨询

myepoch 2015-11-03 09:36:42


execute(say, "Hello World.");

function say(word) {
console.log(word);

this.userinfo = function(){
console.log("ABCXYZ");
}

}

function execute(someFunction, value) {
someFunction(value);// 此处可以打印出value的值
someFunction.userinfo;// 为什么此处不能打印出‘ABCXYZ’,如何修改userinfo才能打印出来呢?
}
...全文
116 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hch126163 2015-11-03
  • 打赏
  • 举报
回复
new someFunction().userinfo();
qq_31182999 2015-11-03
  • 打赏
  • 举报
回复
someFunction是个构造函数,需生成对象再访问该对象的属性。建议多学习下javascript核心
slwsss 2015-11-03
  • 打赏
  • 举报
回复
function say(word) { console.log(word); } say.userinfo = function(){ console.log("ABCXYZ"); } execute(say, "Hello World."); function execute(someFunction, value) { someFunction(value);// 此处可以打印出value的值 someFunction.userinfo();// 为什么此处不能打印出‘ABCXYZ’,如何修改userinfo才能打印出来呢? }
伟go 2015-11-03
  • 打赏
  • 举报
回复
你要清楚函数中的this是指什么? 在普通函数的调用方式下(非严格模式),this指的是全局对象,也就说你把userinfo这个函数给了全局对象,而不是say。直接调用userinfo()就能正常输出。
execute(say, "Hello World.");
 
			function say(word) {
	  		console.log(word);
	   		this.userinfo = function(){
	      	console.log("ABCXYZ");
	  		}
		}
	 
			function execute(someFunction, value) {
		  		someFunction(value);// 此处可以打印出value的值
		  		userinfo();// 为什么此处不能打印出‘ABCXYZ’,如何修改userinfo才能打印出来呢?
			}

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧