javascript - 如何在 Javascript 和 OOP 中创建方法

标签 javascript oop

我正在尝试在 JavaScript 中创建一个对象,并且正在关注 Mozilla's tutorial 。该教程工作得很好,但是当我将该技术应用于我的代码时,它不起作用。 (我做错了什么,但我没有看到)。我对所有方法进行了编码,没有收到任何错误,我初始化了对象,也没有收到任何错误,我什至调用了我的方法,也没有收到错误,但返回值是一个带有我的字符串代码而不是我期望的值

function JavaScriptObj(id, datatype) {
    function initialize(id, datatype) {
        if (typeof id === 'number' && id > 1) {
            this.theID = id;
        } else {
            console.error("ERROR: JavaScriptObj.initialize" + id + "is NOT a valid argument");
        }

        if (typeof datatype === 'string') {
            this.data_type = datatype;
        } else {
            console.error("ERROR: JavaScriptObj.initialize" + datatype + "is NOT a valid argument");
        }
    }
}

JavaScriptObj.prototype.getSectionName = function(){
    var SectionName = "section-" + this.theID;
    return SectionName;
};
var person2 = new JavaScriptObj(2, "texteditor");
alert(person2.getSectionName);

这是我的jsfiddle

提前致谢! :-)

最佳答案

删除initialize嵌套函数:

function JavaScriptObj(id, datatype) {
    if (typeof id === 'number' && id > 1) {
        this.theID = id;
    } else {
        console.error("ERROR: JavaScriptObj: " + id + "is NOT a valid argument");
    }

    if (typeof datatype === 'string') {
        this.data_type = datatype;
    } else {
        console.error("ERROR: JavaScriptObj: " + datatype + "is NOT a valid argument");
    }
}

JavaScriptObj.prototype.getSectionName = function(){
    var SectionName = "section-" + this.theID;
    return SectionName;
};

var person2 = new JavaScriptObj(2, "texteditor");
alert(person2.getSectionName()); // need to call it too

关于javascript - 如何在 Javascript 和 OOP 中创建方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19612770/

相关文章:

Javascript DOMParser.parseFromString 给出解析错误

javascript - 在多个对象属性字段上存储单个元素的属性

python - self 属性不起作用python

javascript - this.method.bind(this) 方法是做什么的?

javascript - 动态创建可滚动的 SVG

javascript - 使用 Underscore 将嵌套 JSON 展平为键控值数组

javascript - 用于简单 Vue.js 项目的自定义微调器加载器

oop - 构造函数与工厂方法

Java SWT 为对话框扩展另一个类

javascript - 在闭包之外访问变量