getter与setter
var obj = {
get a() {
return 2;
},
get c() {
return 34
}
}
Object.defineProperty(
obj,
'b',
{
get: function () {
return this.a * 2 },
enumerable: true }
)
console.log(obj);
/*
* a: 2
* b: 4
* c: 34
* get a: ƒ a()
* get b: ƒ ()
* get c: ƒ c() //有set就得有get 不然会出现去怪问题
var obj1 = {
get a() {
return this._a_;
},//有点像初始化变量
set a(val) {
this._a_ = val + 4;
}//类似于变量的赋值 如果没有set obj1.a为undefined 就算下面赋值也不行
};
obj1.a = 3;
console.log(obj1.a) /*对象的属性操作符 是否可以枚举*/
var obj2 = {name:'hxq'};
Object.defineProperty(
obj2,
'a',
{
value:2,
enumerable:true
}
)
Object.defineProperty(
obj2,
'b',
{
value:3,
enumerable:false
}
)
console.log(obj2); /*for in 遍历下标*/
for (let i in [1,1,1,3,232,3]){
console.log(i) //可以通过遍历下标来遍历值
}
// for of 直接遍历值
for (let i of [21312,,1,31,3,123,1]){
console.log(i)
}
/*for of 原理内置的@@iterator来手动遍历数组*/
var arr=[12,231,32,32];
var it=arr[Symbol.iterator]();
console.log(it)
console.log(it.next());//{value: 12, done: false}
console.log(it.next());//{value: 231, done: false}
console.log(it.next());//{value: 32, done: false}
console.log(it.next());//{value: 32, done: false}
console.log(it.next());//{value: undefin, done: true}
getter与setter的更多相关文章
- 基于 getter 和 setter 撸一个简易的MVVM
Angular 和 Vue 在对Angular的学习中,了解到AngularJS 的两个主要缺点: 对于每一次界面时间,Ajax 或者 timeout,都会进行一个脏检查,而每一次脏检查又会在内部循环 ...
- scala getter and setter
package exp { object Main { def main(args: Array[String]): Unit = { B.name ="Fred"; printl ...
- 由Vue引发的getter和setter思考
公司的新项目决定使用Vue.js来做,当我打印出Vue实例下的data对象里的属性时,发现了一个有趣的事情: 它的每个属性都有两个相对应的get和set方法,我觉的这是多此一举的,于是去网上查了查Vu ...
- 为什么要设置getter和setter?
面向对象语言中,通常把属性设置为私有,然后添加getter和setter方法来访问.有人说,这本质上和设置属性为公有没有区别,干脆把属性public算了.也有人反驳,这样做破坏了封装.但是,破坏了封装 ...
- javascript权威指南笔记--javascript语言核心(五)--getter和setter属性
getter和setter属性: var p = { x:1.0, y:1.0, get r(){ return Math.sqrt(this.x*this.x + this.y * this.y); ...
- [图解教程]Eclipse不可不知的用法之一:自动生成Getter、Setter和构造方法
[图解教程]Eclipse不可不知的用法之一:自动生成Getter.Setter和构造方法 关键词:Getters and Setters.getter和setter方法.Constructor us ...
- 属性声明(property declarations), 自定义属性,自动生成 get 和 set 方法,getter 和 setter
属性声明(property declarations), 自定义属性,自动生成 get 和 set 方法,getter 和 setter 一.普通的get 和set 属性. 一般的get 和set 属 ...
- Vue引发的getter和setter
Vue引发的getter和setter 公司的新项目决定使用Vue.js来做,当我打印出Vue实例下的data对象里的属性时,发现了一个有趣的事情: 它的每个属性都有两个相对应的get和set方法,我 ...
- @property 的本质是什么?ivar、getter、setter 是如何生成并添加到这个类中的
出题者简介: 孙源(sunnyxx),目前就职于百度 整理者简介:陈奕龙(子循),目前就职于滴滴出行. 转载者:豆电雨(starain)微信:doudianyu @property 的本质是什么? @ ...
- 生成getter()、setter()方法去掉变量前缀
当定义的变量名有前缀但是不想在生成它的getter()和setter方法的时候让前缀出现,比如今天项目的部分代码: public class Crime { private UUID mId; //标 ...
随机推荐
- Condition实现多线程顺序打印
Condition实现多线程顺序打印: import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.R ...
- Tensorflow 优化学习
# coding: utf-8 import tensorflow as tffrom tensorflow.examples.tutorials.mnist import input_data pr ...
- 【转】nginx的模块变量(HTTP核心模块变量)
nginx的HTTP核心模块引入了大量的变量,可以在指定范围内使用这些变量的值,可以分为三类:一是客户请求头中发送的变量.二是服务器端响应头中的变量,第三是nginx产生的各种变量,我们可以使用$变量 ...
- C语言-郝斌笔记-001求二次方程的根
求二次方程的根 #include <stdio.h > #include<math.h> int main(void) { //把三个系数保存到计算机中 ; //=不表示相等, ...
- Entity Framework Tutorial Basics(38):Explicit Loading
Explicit Loading with DBContext Even with lazy loading disabled, it is still possible to lazily load ...
- clions的使用
最近无聊玩了下CLion这个IDE,顺便学习了下CMAKE怎么使用.话说CLion的CMAKE的支持还不是特别的完好,和命令行模式还有有区别,有如下几个问题: 1:CMAKE的编译目录不能指定,而是I ...
- requireJS入门基础
参考 require.js详解 1.引用requireJS的html文件 <!DOCTYPE html> <head> <title>requireJS</ ...
- Linux性能指标解释+Oracle性能指标解释
Linux性能指标解释 类别 计数器名称 计数器描述 业界同行认可的资源阀值 memory Free(KB) 可用物理内存数 swap-in/out =0 Swap(KB) 已使用的虚拟内存数.在Li ...
- 第一个spring MVC
1.导包 Spring所有包 2.web.xml配置 <?xml version="1.0" encoding="UTF-8"?> <web- ...
- JavaScript之入门篇(二)
终于学到后面的语法部分了,感觉这门语言基础部分和当初学习VB的时候感觉一样一样的,章节目录让我不禁又想到了VB课本.由于怕学过了,过段时间忘了,于是,大概总结一下. 数据类型部分 ① Typeof操作 ...