我正在尝试更好地理解 javascript 中的继承。我的目标是编写一个声明一些变量并设置环境的函数,以便其他函数可以基于它构建。我有点像 Ruby 中的 mixins 一样思考。这是一个不起作用的简单示例。
function baseFunction(){
this.my_var = "hello world";
};
function speakMessage(){
alert(this.my_var);
}
speakMessage.prototype = baseFunction();
speakmessage();
我认为如果我将原型(prototype)设置为 baseFunction,那么将在 baseFunction 中搜索 speakMessage 函数中未找到的任何属性。那不对吗?我如何才能让它发挥作用?
最佳答案
简单的答案,但是... speakMessage();
(大 M):-)
Javascript 区分大小写。
我错过了来自 HMR 的精彩评论:如果在 Javascript 中与 new 一起使用,函数就像构造函数一样。请注意我添加到您的代码中的两个 new
:
my_var = "goodbye world";
function baseFunction() {
this.my_var = "hello world";
}
function speakMessage() {
alert(this.my_var);
}
speakMessage.prototype = new baseFunction(); // new: inherit from object
new speakMessage(); // object constructor: hello world
speakMessage(); // function: goodbye world from window object context
另请参阅 HMR 的回答。
关于javascript - 如何继承这个javascript函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20910824/