ES6 D-2

  • Post author:
  • Post category:其他


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 版权协议,转载请附上原文出处链接和本声明。