Getter 函数的作用是可以让对象返回一个私有变量,而不需要直接去访问私有变量。
Setter 函数的作用是可以基于传进的参数来修改对象中私有变量。
这些修改可以是计算,或者是直接替换之前的值。
创建新对象
-
var obj = new Object() obj.name = ;
-
var obj = { name: age: }
-
构造函数——一次性创建多个相同属性的对象
ES5
function 构造函数名(形参){
this.属性=值
this.方法=function(){}
}
new 构造函数名(实参) //调用函数,实参传入形参
var SpaceShuttle = function(targetPlanet){
this.targetPlanet = targetPlanet;
}
var zeus = new SpaceShuttle('Jupiter');
ES6 使用 class 语法定义构造函数
class 构造函数名 {
constructor(形参){
this.属性= 值; //值多半是形参
}
}
var zeus = new 构造函数名(实参);
class SpaceShuttle {
constructor(targetPlanet){
this.targetPlanet = targetPlanet;
}
}
var zeus = new SpaceShuttle('Jupiter');
注:var a= / /构造函数不需要return 就能返回结果
注意 class 大写驼峰命名法
getter 和 setter 来控制对象的访问
let obj = {
a:1,
b:0
}
取a的值 obj.a 就是getter
设置a的值obj.a=10 就是setter
Vue-什么叫把属性转化成getter/setter
vue的数据改变需要更新到视图中的,那么Vue是如何知道数据啥时候改变呢?
就是通过在属性上加上它自己的setter,正如上面属性a的setter,可以在里面加上通知『我改变』 的逻辑。把属性转化成
getter/setter
这里有两个名词,一个是属性,一个是getter/setter,属性可以理解为默认的getter/setter,也就是没有自定义的逻辑在里面,就是单纯的访问和设置,getter/setter是会加上Vue自己的逻辑的。//from知乎
class Thermostat{
constructor(F){
this._F= F ;
}
get temperature(){
return 5/9 * (this._F - 32);
}
set temperature ( C ) {
this._F = (C * 9.0) / 5 + 32;
;
}
}
const thermos = new Thermostat(76); // 设置为华氏刻度
let temp = thermos.temperature; // 24.44 摄氏度
thermos.temperature = 26;
temp = thermos.temperature; // 26 摄氏度
通常会在私有变量前添加下划线(
_
)。 然而,这种做法本身并不是将变量变成私有的。
版权声明:本文为bearmyeye原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。