使用 JavaScript 原型继承
2012-06-18
144
为什么此功能...
734840712
但不是这个..
151638261
我不了解继承的工作原理或JavaScript“原型链”。
谢谢。
2个回答
function Person(name) {
this.name = name;
speak = function() {
alert(this.name);
}
应为
function Person(name) {
this.name = name;
this.speak = function () {
alert(this.name);
};
}
Domenic
2012-06-18
实际上,您不理解的是变量范围。
function Person(name) {
this.name = name;
speak = function() {
alert(this.name);
}
}
通过省略
speak = ...
之前的
var
,您创建了一个名为
speak
的全局变量,而不是
Person
范围内的变量。在浏览器中,全局变量附加到全局对象
window
,因此您的代码相当于:
function Person( name ) {
this.name = name;
window.speak = function() { alert( this.name ); }
>
Douglas Crockford 撰写了 一些相关材料 ,关于原型继承中的变量范围,您应该会觉得很有启发。
Jordan Running
2012-06-18