为什么这些代码在浏览器和节点中有不同的结果

时间:2016-02-25 13:07:13

标签: javascript node.js

我刚开始学习javascript。我发现这些代码在浏览器和运行节点时会有结果。

function Foo() {
    this.getName = function () { console.log(1); };
    return this;
} 
Foo.getName = function () { console.log(2);};
Foo.prototype.getName = function () { console.log(3);};
var getName = function () { console.log(4);};
function getName() { console.log(5);}
Foo.getName();  //2
getName();  //4
Foo().getName(); //1
getName();  //4
new Foo.getName(); //2
new Foo().getName(); //1
new new Foo().getName(); //1

并在浏览器中代码如下

function Foo() {
    getName = function () { alert (1); };
    return this;
}
Foo.getName = function () { alert (2);};
Foo.prototype.getName = function () { alert (3);};
var getName = function () { alert (4);};
function getName() { alert (5);}
Foo.getName();
getName();
Foo().getName();
getName();
new Foo.getName();
new Foo().getName();
new new Foo().getName();

我只是想知道这是怎么发生的?

0 个答案:

没有答案