get and set
2016-08-26 19:14
176 查看
(function () { function Student(name, age, gender) { this._name = name; this._age = age; this._gender = gender; } Object.defineProperty(Student.prototype, "name", { get: function () { return this._name; }, set: function (value) { this._name = value; } }); Object.defineProperty(Student.prototype, "age", { get: function () { return this._age; }, set: function (value) { this._age = value; } }); Object.defineProperty(Student.prototype, "gender", { get: function () { return this._gender; } }); var stu = new Student("张三", 12, "男"); console.log(stu.name); stu.age=13; console.log(stu.age); })();
在只提一下Object.defineProperty方法。
三个参数:目标对象,方法名,功能(get和set)
注意set只能接受一个数值。
今天偶然想到,set的一个巧用。用它可以代替形参,有时候。具体是不去写形参,而是在用它的时候去拿set去赋值。
代码进化:
(function () { function Student(name, age, gender) { this._name = name; this._age = age; this._gender = gender; } Object.defineProperties(Student.prototype, { name: { set: function (value) { this._name = value; }, get: function () { return this._name; } }, age: { set: function (value) { this._age = value; }, get: function () { return this._age; } }, gender: { get: function () { return this._gender; } } }); function main() { var stu1 = new Student("Tom", 12, "boy"); console.log(stu1.gender); } main(); })();
这里用Object.defineProperties批量设置属性。注意格式就行。
代码装甲进化:
(function () { function Student(name, age, gender) { return { _name: name, _age: age, _gender: gender, get name() { return this._name; }, set name(value) { this._name=value; }, get age(){ return this._age; }, set age(value){ this._age=value; }, get gender(){ this._gender=gender; } }; } var stu1=new Student("Tom",12,"female"); console.log(stu1.name); })();
这样可以把get和set写在内部。同样注意格式。
相关文章推荐
- java 代码自动生成getAndset
- C# : row-clickable GridView and get and set gridview rows using JavaScript
- NODE GET AND SET
- WPF1: Set and Get value for a control in a form which run in another thread
- Set&Get and MACRO
- SF :Salesforce中,Get and Set
- SF :Salesforce中,Get and Set
- Get Local IP Address and Set in the IP Control
- setAttribute and getAttribute的用法 以及阻止<a>的href的默认属性
- Git CMD - config: Get and set repository or global options
- Get and Set
- Get and Set Column/Row Names for Data Frames
- Sharepoint PeopleEditor get value and set value
- Usage of get_fs and set_fs
- GetCurrentDirectoryA and SetCurrentDirectoryA
- Javascript set and get methods Textarea cursor position
- Set And Get Attribute --- DOS
- INFO: Header and Library Requirement When Set/Get Socket Options at the IPPROTO_IP Level
- [Jenkins] Use python requests to programatically get and set Jenkins job configuration
- java set and get 用法