如何在javascript中使用对象文字表示法创建类?

时间:2010-11-10 07:13:37

标签: javascript

我想在Java Script中创建一个类。我可以使用与原型相结合的基本功能,但我想使用Object Literal Notation。是否可以使用Object Literal Notations创建类?

2 个答案:

答案 0 :(得分:2)

你不能创建一个对象的实例(是的,你甚至可以在Javascript中看到函数作为对象,但我说的是文字定义的对象),你必须使用一个函数来定义一个可重用的类。

答案 1 :(得分:0)

无法完成....好吧,取决于你如何定义要求的参数。需要被完成?争论不休。

以下是我的一位同事的想法。

http://bit.ly/18xGdKi [带控制台示例的JSBin]

if (typeof (makeClass) === "undefined") {
  makeClass = function(o) {
    var F = function () {};

    if (typeof (o) === "object" && o !== null) {
      if (typeof (o.constructor) === "function") {
        F = o.constructor;
      }

      F.prototype = o;
    }

    return F;
  };
}

var MyClass = makeClass({
  constructor: function (pName) {
    var _myPrivateIdaho = 'Idaho ' + pName;
    this.name = pName;

    var _myPrivateFunc = function() {
      console.log('You are in my ' + 
                  _myPrivateIdaho +'.');
    };

    _myPrivateFunc();
  },
  getName: function() {
    return this.name;
  }
});

new MyClass('Bob');
new MyClass('Steve');