【发布时间】:2014-01-16 13:04:47
【问题描述】:
我一直在寻找并努力研究以下示例:
var player1= {name: "Chris", score: 1000, rank: 1};
var player2= {name: "Kristofer", score: 100000, rank: 2};
function playerDetails(){
alert("The name of the player is "+ this.name + "."+ " His score is : "+ this.score + "and his rank : "+ this.rank);
}
player1.logDetails= playerDetails;
player2.logDetails= playerDetails;
player1.logDetails();
player2.logDetails();
据我所知player1.logDetails 是 player1 的属性或 player1 的方法。
所以我无法理解作者如何将属性分配给函数。
另外我不明白为什么你会这样写而不是:
player1.logDetails=playerDetails();
我已经尝试过但不起作用。
然后他调用player1.logDetails(),这是一个函数,但没有在任何地方声明。(?)
如果有人可以帮忙? 提前谢谢你
【问题讨论】:
-
live test case 对于那些感兴趣的人。
-
Javascript 不同于 C# 或 Java。在 Javascript 中,您可以将函数作为参数传递给另一个函数或任何变量。然后按照您在代码中看到的那样调用该函数。
-
@KhurramHassan 我们也可以使用 Delegate 在 c# 中将函数作为参数传递。
-
@MillerKoijam 我从来没有说过我们不能在 C# 中将函数作为参数传递。我说 Javascipt 不同于 C# 或 Java,意思是不要将 Javascript 与这些语言混淆,它们的限制是不同的
-
@KhurramHassan 至于这里的例子:
player1.logDetails= playerDetails;是什么意思,你为什么不使用这个语法:player1.logDetails= playerDetails();。是否有替代方法来编写具有相同功能的代码?
标签: javascript function object properties