Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 以下代码的语法是否有效?_Javascript - Fatal编程技术网

Javascript 以下代码的语法是否有效?

Javascript 以下代码的语法是否有效?,javascript,Javascript,当我运行此命令时: function Person(name) { this.name = name; } Person.prototype.intro = function () { console.log("Hello I am " + this.name); }; var person = new Person("John"); var intro = person.intro; alert(intro()); 它生成一个消息框,简单地说是“未定义”。为什么?我想你是

当我运行此命令时:

function Person(name) {
   this.name = name;
}

Person.prototype.intro = function () {
   console.log("Hello I am " + this.name);
};

var person = new Person("John");

var intro = person.intro; 
alert(intro());

它生成一个消息框,简单地说是“未定义”。为什么?

我想你是想问:“如果这是一个有效的语法,那么为什么它不起作用?”

有效吗?是
工作没有

这一行:

var intro = person.intro;
使您的代码松散

现在,
这是全局窗口对象


因此,您看不到预期的结果。

如果您不想将此
释放到全局窗口对象,请像这样尝试

function Person(name) {
   this.name = name;
}

Person.prototype.intro = function () {
   console.log("Hello I am " + this.name);
};

var person = new Person("John");

person.intro();

你的问题是什么&你想做什么?