将参数值传递给javascript函数

时间:2013-12-10 21:48:30

标签: javascript

我正在尝试将参数传递给我的函数,但它没有被传递。

<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>

2 个答案:

答案 0 :(得分:2)

有两件事正在发生。

  • window.alert仅显示第一个参数,其他参数被忽略 window.alert(message);
    ^^^Accepts a single argument
  • 您只将thisValue传递给Function.prototype.call。你需要传递一个字符串作为第二个参数 fun.call(thisArg[, arg1[, arg2[, ...]]])
    ^^^ The string passed to sayHello

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

答案 1 :(得分:0)

这与传递参数无关;这是一个简单的问题,即出现语义错误。 (您的控制台没有将其显示为语法错误,因为您可以将额外的参数传递给所有JavaScript函数。)

alert('Hello from = ', parm1);就是问题所在。 alert只接受一个参数,因此请使用字符串连接。如果您改为使用alert('Hello from = ' + parm1),则应该看到参数正常运行。