将参数值传递给javascript函数
我试图向函数传递一个参数,但没有传递将参数值传递给javascript函数,javascript,Javascript,我试图向函数传递一个参数,但没有传递 <html> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"> </script> <script> $(document).ready(function () {
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
</script>
<script>
$(document).ready(function () {
function Person() {
alert('New Person Created');
}
Person.prototype.sayHello = function (parm1) {
alert('Hello from = ', parm1);
};
var itsme = new Person();
itsme.sayHello('Prem');
var newfunction = itsme.sayHello;
newfunction.call(itsme);
});
</script>
</head>
<body>
</body>
</html>
$(文档).ready(函数(){
职能人员(){
警报(“新创建的人员”);
}
Person.prototype.sayHello=函数(parm1){
警报('Hello from=',parm1);
};
var itsme=新的人();
是我,说你好(“Prem”);
var newfunction=itsme.sayHello;
newfunction.call(itsme);
});
这与传递参数无关;这是一个语义错误的简单问题。(您的控制台没有将其显示为语法错误,因为您可以向所有JavaScript函数传递额外的参数。)
alert('Hello from=',parm1)代码>是问题所在<代码>警报
只接受一个参数,因此使用字符串合并。如果改为使用alert('Hello from='+parm1)
,您应该会看到参数正在正常运行。有两件事正在发生
- 仅显示第一个参数,其他参数将被忽略
window.alert(消息)代码>
^^^接受单个参数
- 您只将
此值传递给了。您需要传递一个字符串作为第二个参数。
fun.call(thisArg[,arg1[,arg2[,…])
^^^传递给sayHello的字符串
这不是语法错误<代码>警报是一个函数,函数可以接受任意数量的参数<代码>警报仅使用参数[0]。这不像
如果(arguments.length>1)抛出新的SyntaxError(“…”)
@C5H8NNaO4嘿,MSG。我会支持语法错误,因为我解释了为什么它不会抛出一个。这仍然是警报
语法中的一个错误,即使浏览器的编译器没有捕获它。嘿:)不过,描述的唯一要点是1。如果事件循环的终止嵌套级别为非零,可以选择中止这些步骤。2.释放存储互斥锁。3.(可选)中止这些步骤4。向用户显示给定的消息
。5.可选地,在等待用户确认消息时暂停。我不认为这是警报语法中的错误。@C5H8NNaO4好吧,API不能说服我,但确实说服了我。我同意,这是一个语义错误。jQuery在这里是无用的。
function Person() {
alert('New Person Created');
}
Person.prototype.sayHello = function (parm1) {
alert('Hello from = ' + parm1);
// ^^^ You should pass a single argument to alert, you can concatenate strings with a +
};
var itsme = new Person();
itsme.sayHello('Prem');
var newfunction = itsme.sayHello;
newfunction.call(itsme, "new function");
// ^^^ You weren't actually passing any parameter