【发布时间】:2011-12-30 09:00:40
【问题描述】:
我想在Javascript中创建一个只有一个公共函数的简单类,如下所示:
function A(myTitle) {
var title = "";
this.getTitle = function() {
return title;
};
title = myTitle;
};
var anInstance = new A("first");
console.log("anInstance.getTitle(): '"+anInstance.getTitle()+"'");
// expecting to return "first"
这确实按预期工作。
现在我想将这个类作为原型添加到一个新类中,其中包括一个新的标题变量,以便 getTitle() 方法返回变量的值:
var myA = new Object();
myA.title ="second";
myA.prototype = anInstance;
console.log("myA.getTitle(): '"+myA.getTitle()+"'");
// expecting to return "second"
但不是预期的“秒”,而是导致以下错误:
TypeError: 'undefined' is not a function (evaluating 'myA.getTitle()')
这个函数访问有什么问题?
更新:
我的问题的关键点如下:在我的应用程序中,我将创建数千个“A”类型的实例以及更多其他类似类型的实例。因此,内存效率和性能确实很重要。所以我认为只创建一次相应的方法(后面还会有几个,getTitle 只是一个示例)并且“数据对象”引用这些方法会很棒。这可能吗?
【问题讨论】:
-
这里有一个关于类和继承的好例子phrogz.net/js/classes/OOPinJS2.html
标签: javascript public prototype-programming