批改状态:合格
老师批语:看来基础不错
let obj={};obj.a=10; //属性 存储这个值,获取这个值,不能执行多条语句obj.a(); //方法 不能存储值,只能执行多条语句
属性对应的是一个值,只能存储值、获取值,不能执行多条语句;
方法对应的是一个函数,不能存储值,只能执行多条语句。
而 set 和 get 能够实现对象的属性特征和对象的方法特征,可以存储值,也可以执行多条语句。
//正在描述的对象var obj={set a(value){this._a=value;},get a(){return this._a;}}obj.a=3;console.log(obj);//给已有的对象设置值let div=document.querySelector("div");Object.defineProperty(div,"bg",{configurable:true,enumerable:true,set:function(value){this._bg=value;},get:function(){return this._bg;}})div.bg="red";console.dir(div);//面向对象ES6中的类class Box{consturctor(){}set num(value){this._num=value;}get num(){return this._num;}}Box.num=5;console.dir(Box);
var div = document.querySelector("div");Object.defineProperty(div, "bg", {set: function (value) {this.style.backgroundColor=value;this._bg = value;},get: function () {//设置默认值为redif (!this._bg) this._bg = "red";return this._bg}});div.bg="blue";console.log(div.bg);//blue
var div = document.querySelector("div");Object.defineProperties(div,{bgList:{// 描述对象configurable:true,// 该属性的值value:["#FF0000","#00FF00","#0000FF","#FFFF00","#00FFFF","#FF00FF"]},bg:{set:function(value){if(value<0) value=this.bgList.length-1;if(value>this.bgList.length-1) value=0;this.style.backgroundColor=this.bgList[value];this._bg=value;},get:function(){if(!this._bg) this._bg=0;return this._bg;}}});div.bg=0;div.addEventListener("click",clickHandler);function clickHandler(e){div.bg++;}
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号