当前位置: 首页 > news >正文

金华建站软件seo推广方法集合

金华建站软件,seo推广方法集合,最新新闻热点事件及分析,邱县企业做网站推广在JavaScript中,对象的属性不仅可以是数据属性(即常规的键值对),还可以是访问器属性(accessor properties)。访问器属性不包含实际的数据值,而是定义了如何获取(get)和设…

在JavaScript中,对象的属性不仅可以是数据属性(即常规的键值对),还可以是访问器属性(accessor properties)。访问器属性不包含实际的数据值,而是定义了如何获取(get)和设置(set)一个值。这些操作由getter和setter函数执行。

get属性(getter)

get是一种定义在对象内部的函数,用于访问某个属性值时返回一个值。当你试图访问该属性时,getter函数会被自动调用。

使用方法:

const obj = {_value: 42,get value() {console.log("Getter is being called!");return this._value;}
};console.log(obj.value); // 输出: "Getter is being called!" 然后输出: 42

get的作用:

  1. 计算属性:当对象的属性值取决于其他属性或某些外部因素时,可以使用getter。
  2. 验证和控制访问:当访问对象的某个属性时,可以使用getter来执行特定的验证或日志操作。
  3. 懒加载:只在首次访问属性时计算其值,并缓存该值以供后续使用。
  4. 代理属性:为对象的其他属性或外部数据源提供别名或特定的访问逻辑。

使用场景示例:

  1. 计算属性

    const circle = {radius: 5,get area() {return Math.PI * this.radius * this.radius;}
    };console.log(circle.area); // 输出圆的面积
    
  2. 控制属性访问

    const person = {_age: 0,get age() {return this._age;},set age(value) {if (value < 0) {console.warn("Age cannot be negative!");} else {this._age = value;}}
    };person.age = -5; // 输出警告: "Age cannot be negative!"
    
  3. 懒加载

    let expensiveObject = {_data: null,get data() {if (!this._data) {console.log("Fetching data...");this._data = "Expensive Data";}return this._data;}
    };console.log(expensiveObject.data); // "Fetching data..." 然后输出: "Expensive Data"
    console.log(expensiveObject.data); // 直接输出: "Expensive Data"(不再"Fetching data...")
    

综上,getter使我们能够对对象属性的访问进行更精细的控制,并提供计算、验证、日志记录、懒加载等功能。

get会被Json序列化?

在JavaScript的JSON序列化过程中,getset 的行为有所不同:

  1. get(getter):当你使用JSON.stringify方法序列化一个对象时,如果该对象的某个属性是通过getter定义的,那么getter会被调用,并且返回的值会被序列化到JSON字符串中。换句话说,getter的结果会被序列化。
const obj = {_value: 42,get value() {return this._value;}
};const jsonString = JSON.stringify(obj); // 输出为'{"_value":42,"value":42}'

如上所示,尽管value属性是通过getter定义的,它的值(由getter返回的值)被正确地序列化到了JSON字符串中。

  1. set(setter):setter在JSON.stringify的序列化过程中不起作用,因为它与特定的值无关。setter只定义了如何设置某个属性的值,而不定义了要序列化的具体值。因此,setter本身不影响序列化的结果。

    const obj = {_value: 42,get value() {return this._value;},set value(val) {this._value = val;}
    };const jsonString = JSON.stringify(obj); // 输出依然为'{"_value":42,"value":42}'
    

总结:在JSON.stringify的序列化过程中,getter会被调用并将其返回的值序列化,而setter则被忽略。

http://www.yidumall.com/news/21680.html

相关文章:

  • 网站建设代理平台百度关键词优化专家
  • 例点估算网站开发项目工作量百度流量统计
  • 日本黄页网站免费大全1688怎么创建网站快捷方式
  • 什么网站可以在家做美工兼职东莞网络推广哪家公司奿
  • wordpress站外搜索营销推广方案
  • 免费手机网站空间风云榜小说排行榜
  • 澳门做网站找谁如何做网站
  • 美国 做网站google推广公司哪家好
  • 如何配置php网站seo课程培训
  • 网站排名优化和竞价天津网站seo设计
  • seo蒙牛伊利企业网站专业性诊断企业网站管理系统怎么操作
  • 彩票网站怎么做的百度下载电脑版
  • 免费行情软件网站下载无病毒广州网站定制多少钱
  • 怎么做网站广告卖钱微商软文范例大全100
  • 两学一做党员考试网站宁波seo推广外包公司
  • 为什么建设营销型网站公司管理培训课程大全
  • 外贸网站建设szjijie今日特大军事新闻
  • 学校网站 功能深圳疫情最新情况
  • 网站页面设计要求搜索引擎营销是什么
  • 阿里云企业网站模板目前最流行的拓客方法
  • 软件开发公司规章制度seo排名优化公司价格
  • 网站源码分享网微信引流的十个方法
  • 纳雍网站建设公司百度网盘pc网页版入口
  • 湖南企业网站制作举一个网络营销的例子
  • 徐闻住房与城乡建设局网站专业软文发布平台
  • 惠州市网站开发如何开发一个软件平台
  • 建筑公司愿景口号大全站内seo和站外seo区别
  • 南通专业网站建设公司西安今日头条最新新闻
  • 微企免费做网站广州seo托管
  • 专业的网站服务公司百度的网页地址