如何编写JavaScript对象?

时间:2017-03-19 18:07:54

标签: javascript oop

我开始以一种深入的方式学习javascript,尽可能像oop一样 例如,哪些是写对象的表达式......

首先,它之间的区别是什么:

    var ObjA = function () {
        this.methodA = function () {
            alert("I'm objA.methodA()");
        }
    }
    var a = new ObjA();
    a.methodA();

和此:

    var ObjB = function () {
        return {
            methodB: function () {
                alert("I'm objB.methodB()");
            }
        }
    }
    var b = new ObjB();
    b.methodB();

结果是一样的。有人可以用“傻瓜”方式向我解释:

  1. 在这两种情况下我都在写一个对象吗?

  2. 有差异吗?或者这两种写同样的方式?

  3. 还有其他方法可以写一个对象吗?

  4. 如果您对JavaScript对象有更多评论我会非常高兴。

  5. 另外,谈谈对象的方法,如果我尝试:

        var ObjA = function () {
            this.methodA = function () {
                alert("I'm objA.methodA()");
            }
    
            this.methodPublic = function () {
                alert("I'm objA.methodPublic()");
                methodPrivate();
            }
            var methodPrivate = function () {
                alert("I'm objA.methodPrivate()");
            }
        }
        var a = new ObjA();
        a.methodPublic(); // OK
        a.methodPrivate(); // KO
    
    • 当我打电话给a.methodPublic(); - >我收到methodPublic的警报,methodPublic()在内部调用methodPrivate(),我收到methodPrivate()的警报
    • 当我调用a.methodPrivate()时; - >我收到调试器错误 这样:

      1. 方法的名称是对的,也就是说我可以说“var mathodPrivate()”就像一个私有方法,而“this.methodPublic()”是一个公共方法?
      2. 是否还有其他方法可以在对象内部编写方法?还有其他意见要做吗?

0 个答案:

没有答案