2011-08-17 80 views
0

我找到了2个为OOP属性定义的javascript,这是正确的吗?在OOP中创建属性JavaScript

  1. 定义属性内当前对象与私有字段(VAR)
  2. 定义原型对象属性的公共领域(与此)

我觉得首先是更喜欢C#的财产?

function Pet() { 

       this._age = 0;      //second public feild 

       _name = 'm2';       //first private feild 
       this.get_name= function() {   //first define 
        return _name; 
       } 

       set_name= function (value) { 
        this._name = value; 
       } 
      } 


      Pet.prototype = { 
       speak: function() {       
        throw Error.notImplemented(); 
       }, 

       get_age: function() {   //second define 
        return this._age; 
       }, 
       set_age: function (value) { 
        if (isNaN(value) || value < 0) { 
         throw Error.argument('age'); 
        } 
        this._age = 0; 
       } 
      } 

      Pet.registerClass('Pet'); 

      var pet = new Pet(); 
      var u = d.get_name(); 
+0

我不知道你在问什么,但是你的注释行//第一个private feild需要在它前面的关键字'var':'var _name ='m2';' – JAAulde

+4

什么是题? –

+0

在封装我们使用的私人feild,是否使用公共feild是正确的? –

回答

1

使用var当地vaariable和两个getter和setter第一选择,因为它给选项来控制输入验证和像raiseing事件设定值时执行定制的代码定义为性能更好。

有了这个关键字,它又是工程属性,但更像公共领域。