1

只是想知道,有以下简单的代码:

var object1 = {
    name: function (){
        return 'myName';
    },
    surname: function (){
        return 'mySurname';
    }
};

为什么 JSfunction()在这种情况下返回 object1.name ?

myName如果我调用 object1.name() ,为什么 JS 会返回预期结果?

4

3 回答 3

2
  1. 引用 name返回的是什么name ——在这种情况下,是一个函数。
  2. name通过附加调用(),即,name()返回一个值——字符串"myName"

何时使用括号以及何时不使用括号的回答?提供更多细节。

于 2012-06-19T01:30:52.687 回答
1
object1.name;//Returns the function declaration
object1.name();//Calls the function and returns its value

它的工作方式类似于以下代码:

var myFn = function(){
    return "This is the return value of this function";
}
alert(myFn);//Alerts the myFn function's declaration
alert(myFn());//Alerts "This is the return value of this function"
于 2012-06-19T01:30:46.163 回答
1

因为在object1.name你调用函数声明

object1.name()你调用这个函数

于 2012-06-19T01:31:01.943 回答