首页
学习
活动
专区
圈层
工具
发布

【Kotlin】类的初始化 ① ( 成员属性 | Kotlin 自动为成员字段生成 getter 和 setter 方法 | 手动设置成员的 getter 和 setter 方法 | 计算属性 )

文章目录 一、Kotlin 自动为成员字段生成 getter 和 setter 方法 二、手动设置成员的 getter 和 setter 方法 三、计算属性 一、Kotlin 自动为成员字段生成 getter...结果 如下 : 二、手动设置成员的 getter 和 setter 方法 ---- Kotlin 会为 类中的每个 成员属性 生成一个 field , getter , setter ; field...用于存储 属性数据 , 是由 Kotlin 自动进行定义封装的 , 只有在 getter 和 setter 函数中才能调用 field ; 手动定义 getter 和 setter 方法示例 : class...---- 如果 Kotlin 类中的 某个属性 是 通过计算得到的 , 可以 在该属性的 getter 和 setter 方法中进行计算设置或获取结果 , 不使用 field 属性 ; 下面的 age...属性就是通过计算得到的属性值 , 每次获取都是 0 ~ 100 之间的随机值 , 没有使用到 field ; val age get() = Math.random() * 100

3.9K20

2022秋招前端面试题(一)(附答案)

通常有两种方式来开启 CSP,一种是设置 HTTP 首部中的 Content-Security-Policy,一种是设置 meta 标签的方式对一些敏感信息进行保护,比如 cookie 使用 http-only...Cookie的大小只有4kb,它是一种纯文本文件,每次发起HTTP请求都会携带Cookie。...Cookie的特性:Cookie一旦创建成功,名称就无法修改Cookie是无法跨域名的,也就是说a域名和b域名下的cookie是无法共享的,这也是由Cookie的隐私安全性决定的,这样就能够阻止非法获取其他网站的...,不像Cookie那样每次HTTP请求都会被携带LocalStorage的缺点:存在浏览器兼容问题,IE8以下版本的浏览器不支持如果浏览器设置为隐私模式,那我们将无法读取到LocalStorageLocalStorage...有一条更加严格的限制,SessionStorage只有在同一浏览器的同一窗口下才能够共享;LocalStorage和SessionStorage都不能被爬虫爬取;SessionStorage的常用API

1.4K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    2022秋招前端面试题(六)(附答案)

    window 传播,遇到注册的冒泡事件会触发事件触发一般来说会按照上面的顺序进行,但是也有特例,如果给一个 body 中的子节点同时注册冒泡和捕获事件,事件触发会按照注册的顺序执行。...Cookie的大小只有4kb,它是一种纯文本文件,每次发起HTTP请求都会携带Cookie。...Cookie的特性:Cookie一旦创建成功,名称就无法修改Cookie是无法跨域名的,也就是说a域名和b域名下的cookie是无法共享的,这也是由Cookie的隐私安全性决定的,这样就能够阻止非法获取其他网站的...,不像Cookie那样每次HTTP请求都会被携带LocalStorage的缺点:存在浏览器兼容问题,IE8以下版本的浏览器不支持如果浏览器设置为隐私模式,那我们将无法读取到LocalStorageLocalStorage...有一条更加严格的限制,SessionStorage只有在同一浏览器的同一窗口下才能够共享;LocalStorage和SessionStorage都不能被爬虫爬取;SessionStorage的常用API

    1.4K20

    腾讯前端一面常考面试题_2023-03-13

    NETWORK: 表示在它下面列出来的资源只有在在线的情况下才能访问,他们不会被离线存储,所以在离线情况下无法使用这些资源。...(5)当一个资源被缓存后,该浏览器直接请求这个绝对路径也会访问缓存中的资源。(6)站点中的其他页面即使没有设置 manifest 属性,请求的资源如果在缓存中也从缓存中访问。...};(8)window.name + iframe跨域window.name属性的独特之处:name值在不同的页面(甚至不同域名)加载后依旧存在,并且可以支持非常长的 name 值(2MB...;通过iframe的src属性由外域转向本地域,跨域数据即由iframe的window.name从外域传递到本地域。这个就巧妙地绕过了浏览器的跨域访问限制,但同时它又是安全操作。...3)Promise缺点1、无法取消Promise,一旦新建它就会立即执行,无法中途取消。2、如果不设置回调函数,Promise内部抛出的错误,不会反应到外部。

    1.5K40

    js对象属性的getter和setter

    ES5的getter和setter方法,通过 Object.defineProperty 把实例属性全部转为 getter/setter。...故温故一遍getter和setter定义属性的方法。 通过对象字面量定义get和set方法 有个注意的地方,get与set的函数体都不能再定义本身该属性,否则执行的时候会陷入死循环,抛出栈溢出。...,不能为一个已有真实值的变量使用 set ,也不能为一个属性设置多个 set。...get的返回值直接为该属性的值。 可以定义configurable、enumerable,默认都为false。...双向数据绑定底层的思想非常的基本,它可以被压缩成为三个步骤: 1.我们需要一个方法来识别哪个UI元素被绑定了相应的属性 2.我们需要监视属性和UI元素的变化 3.我们需要将所有变化传播到绑定的对象和元素

    4.4K50

    JavaScript基础③

    ,相比于cookie可以节约带宽,但是这个却是只有在高版本的浏览器中才支持的 localStorage的局限 浏览器的大小不统一,并且在IE8以上的IE版本才支持localStorage这个属性 目前所有的浏览器中都会把...4. cookie属性项 属性项 属性项介绍 NAME=VALUE 键值对,可以设置要保存的 Key/Value,注意这里的 NAME 不能和其他属性项的名字一样 Expires 过期时间,在设置的某个时间点后该.../ Secure 如果设置了这个属性,那么只会在 SSH 连接时才会回传该 Cookie Expires 该属性用来设置Cookie的有效期。...我们无法在服务端通过cookie.getMaxAge()来判断该cookie是否过期,maxAge只是一个只读属性,值永远为-1。...mc); //可以使用对象的hasOwnProperty()来检查对象自身中是否含有该属性 //使用该方法只有当对象自身中含有属性时,才会返回true //console.log

    77510

    不同页面通信与跨域

    1. localstorage 1.1 onstorage事件 localstorage是浏览器同域标签共用的存储空间,所以可以用来实现多标签之间的通信。...:Uncaught TypeError: parent.fn1 is not a function 这个需要注意,不能跨域,所以双击打开以及不同域是报错的:Uncaught DOMException:...,只能服务器打开 2.3 window.name (能跨域) 类似于vue、react的prop父子传值,只要在父窗口设置iframe标签的name,在子窗口就可以读到。...加上websocket的话,还可以非同源聊天呢,其他的可以自己随意设置了。 从1到2的信息实时传递更新就这样子成功了,反之亦然。 4.MessageChannel 顾名思义,信息通道。...允许我们创建一个新的消息通道,并通过它的两个MessagePort 属性发送数据m,而且在 Web Worker 中可用。可以控制台打印,发现有两个属性,portl1和port2。

    2.2K10

    前端进阶之 a 可以同时 == 1 && == 2 && == 3吗?

    类型转换时的劫持 首先我们要知道,在 JS 中类型转换只有三种情况,分别是: 转换为布尔值 转换为数字 转换为字符串 转换为原始类型 对象在转换类型的时候,会执行原生方法ToPrimitive。...定义 func 为 Get(array,'join')(原生方法,在这一步调用 join 方法); 如果 IsCallble(func) (原生方法,判断是否有内部可调用的函数)为 false,则 设置...对 getter 的劫持 所谓的 getter 就是对象属性在进行查询时会被调用的方法 get,利用此函数也可以实现题目功能。...( test() 也会更新 lastIndex 属性)。 lastIndex 是正则表达式的一个可读可写的整型属性,用来指定下一次匹配的起始索引。...只有正则表达式使用了表示全局检索的 " g" 标志时,该属性才会起作用。 鱼头注:只有正则表达式使用了表示全局检索的 " g" 标志时,该属性才会起作用。

    86820

    vuex知识笔记,及与localStorage和sessionStorage的区别

    Vuex允许我们在store中定义”getter"(可以认为是store对象的计算属性)。就像计算属性一样,getter的返回值会根据它的依赖被缓存起来,且只有当它的依赖值发生了改变才会被重新计算。...// 就像计算属性一样,getter的返回值会根据它的依赖被缓存起来,且只有当它的依赖值发生了改变才会被重新计算。...$store.getters来得到getter。getter里面的属性,可以返回属性,也可以返回方法。...如果getter通过属性访问时是作为Vue的响应式系统的一部分缓存,首次调用后再次调用时就会调用缓存,只有该属性的依赖值变化时,再次调用该属性才会重新调用重新缓存。...这样后面再调用该模块的getter、action和mutation时需要带上该模块名称+调用的属性或方法。

    2.9K20

    前言1. localstorage2. 玩转iframe3. 非同域的两个tab页面通信4.MessageChannel

    1. localstorage 1.1 onstorage事件 localstorage是浏览器同域标签共用的存储空间,所以可以用来实现多标签之间的通信。...:Uncaught TypeError: parent.fn1 is not a function 这个需要注意,不能跨域,所以双击打开以及不同域是报错的:Uncaught DOMException:...,只能服务器打开 2.3 window.name (能跨域) 类似于vue、react的prop父子传值,只要在父窗口设置iframe标签的name,在子窗口就可以读到。...加上websocket的话,还可以非同源聊天呢,其他的可以自己随意设置了。 ? 从1到2的信息实时传递更新就这样子成功了,反之亦然。 4.MessageChannel 顾名思义,信息通道。...允许我们创建一个新的消息通道,并通过它的两个MessagePort 属性发送数据m,而且在 Web Worker 中可用。可以控制台打印,发现有两个属性,portl1和port2。

    5K20

    浏览器同源政策及其规避方法

    (1) Cookie、LocalStorage 和 IndexDB 无法读取。 (2) DOM 无法获得。 (3) AJAX 请求不能发送。...三、iframe 如果两个网页不同源,就无法拿到对方的DOM。典型的例子是iframe窗口和window.open方法打开的窗口,它们与父窗口无法通信。...window.parent.document.body // 报错 如果两个窗口一级域名相同,只是二级域名不同,那么设置上一节介绍的document.domain属性,就可以规避同源政策,拿到DOM。...这个属性的最大特点是,无论是否同源,只要在同一个窗口里,前一个网页设置了这个属性,后一个网页可以读取它。 父窗口先打开一个子窗口,载入一个不同源的网页,该网页将信息写入window.name属性。...;缺点是必须监听子窗口window.name属性的变化,影响网页性能。

    1.2K110

    delete的奇怪行为

    value属性,但不希望在new的时候就初始化属性值(因为这个值不一定用得到,而且计算成本比较高,或者new的时候还不一定能算出来),那么自然想到通过定义getter来实现“按需计算”: var f =...,但getter对使用方更友好,外部完全不知道值是提前算好的还是现算的 delete的奇怪行为分为2部分: // 1.delete用defineProperty定义的属性报错 // Uncaught TypeError...,所以在全局作用域声明的东西会成为global的属性,例如: var p = 'value'; function f() {} window.p === p window.f === f 如果是Function...注意:变量对象和活动对象都是抽象的内部机制,用来维护变量作用域,隔离环境等等,无法直接访问,即便Global环境中变量对象看起来好像就是global,这个global也不全是内部的变量对象(只是属性访问上有交集...,这是与其它两种环境不同的地方,当然,也没有办法直接验证(无法直接访问变量对象) 变量对象身上的属性都有一些内部特征,比如看得见的configurable, enumerable, writable(当然内部划分可能更细致一些

    4K30

    浏览器同源策略跨域问题的产生与解决

    (1) Cookie、LocalStorage 和 IndexDB 无法读取。 (2) DOM 无法获得。 (3) AJAX 请求不能发送。...三、iframe 如果两个网页不同源,就无法拿到对方的DOM。典型的例子是iframe窗口和window.open方法打开的窗口,它们与父窗口无法通信。...window.parent.document.body // 报错 如果两个窗口一级域名相同,只是二级域名不同,那么设置上一节介绍的document.domain属性,就可以规避同源政策,拿到DOM。...这个属性的最大特点是,无论是否同源,只要在同一个窗口里,前一个网页设置了这个属性,后一个网页可以读取它。 父窗口先打开一个子窗口,载入一个不同源的网页,该网页将信息写入window.name属性。...;缺点是必须监听子窗口window.name属性的变化,影响网页性能。

    1.3K30

    浏览器同源政策及其规避方法

    (1) Cookie、LocalStorage 和 IndexDB 无法读取。 (2) DOM 无法获得。 (3) AJAX 请求不能发送。...三、iframe 如果两个网页不同源,就无法拿到对方的DOM。典型的例子是iframe窗口和window.open方法打开的窗口,它们与父窗口无法通信。...window.parent.document.body // 报错 如果两个窗口一级域名相同,只是二级域名不同,那么设置上一节介绍的document.domain属性,就可以规避同源政策,拿到DOM。...这个属性的最大特点是,无论是否同源,只要在同一个窗口里,前一个网页设置了这个属性,后一个网页可以读取它。 父窗口先打开一个子窗口,载入一个不同源的网页,该网页将信息写入window.name属性。...;缺点是必须监听子窗口window.name属性的变化,影响网页性能。

    1K60

    前端学习(5)~html详解(三)

    Web 存储 随着互联网的快速发展,基于网页的应用越来越普遍,同时也变的越来越复杂,为了满足各种各样的需求,会经常性在本地存储大量的数据,传统方式我们以document.cookie来进行存储的,但是由于其存储大小只有...Web 存储的特性 (1)设置、读取方便。 (2)容量较大,sessionStorage 约5M、localStorage 约20M。... Cache Manifest 基础 如需启用应用程序缓存,请在文档的 标签中包含 manifest 属性: 每个指定了 manifest 的页面在用户对其访问时都会被缓存。如果未指定 manifest 属性,则页面不会被缓存(除非在 manifest 文件中直接指定了该页面)。...- 在此标题下列出的文件规定当页面无法访问时的回退页面(比如 404 页面) CACHE MANIFEST 第一行,CACHE MANIFEST,是必需的: CACHE MANIFEST /theme.css

    93620
    领券