javascript中的setter和getters

时间:2016-03-09 19:22:49

标签: javascript

我正在尝试用JavaScript学习类和设置器和getter ..但是我的代码无法运行..它提示未定义..这是我的代码

function Person () {
	name:"something"
	
Person.prototype = {
		get Name (){
			return name;
			},
			set Name (val){
				this.name = val;
				
			}
};
};
var person = new Person(); 
alert(person.name);

2 个答案:

答案 0 :(得分:1)

这是在示例中设置getter和setter的正确方法:

    function Person () {
        this.name = "something";
    }

    Person.prototype = {
        get Name() {
            return this.name;
        },
        set Name(val) {
            this.name = val;

        }
    };

    var person = new Person();
    person.Name = 'example';
    alert(person.name);

答案 1 :(得分:0)

JS基于原型,然后你可以定义属性:

function Person(){
   this._name = '';
}

Object.defineProperty(Person.prototype, "name", {
            get: function(){
                return this._name;
            },
            set: function(value){
                this._name= value;
            },
            enumerable:true,
            configurable: true
});

然后你可以设置或获取属性" name"

var p = new Person()
p.name = 'Stackoverflow'
alert(p.name) // Stackoverflow

在ES6中,您可以使用关键字class,例如:

class Person {
   constructor() {
     this.name = '';
  }
}