应网友的要求写的一个 对象属性访问器的判断

function Person(name) {
  this.name = name;
  this.flag = 0;
  Object.defineProperty(this, ‘name‘, {
    get: function() { return name;},
    set: function(newName) {
      if (this.flag) {
        name = newName;
        this.flag = 0;
      }
      return name;
    }
  });
  this.setName = function(newName) {
    this.flag = 1;
    this.name = newName;
  }
};

var manx = new Person(‘manx‘);
console.log(manx.name); // manx
manx.name = "bob";
console.log(manx.name); // manx

manx.setName(‘jack‘);
console.log(manx.name); // ‘jack‘

  

时间: 2024-08-11 09:56:24

应网友的要求写的一个 对象属性访问器的判断的相关文章

注意不要编写返回引用可变对象的访问器方法

在看<Java核心技术(原书第9版中文版)>的时候,看到113页的一个警告,“注意不要编写返回引用可变对象的访问器方法”.以前没看到过,原来Date对象是可变对象.就可变对象这个概念,查了一下网,我认为可变对象,就是在类中可以不通过域更改器方法就能改变值的对象. 1 package com.csst.sort; 2 3 import java.util.Date; 4 import java.util.GregorianCalendar; 5 6 public class Employee {

JavaScript对象属性访问的两种方式

JavaScript对象属性访问的两种方式 object.attribute object["attribute"] 例如: var employees = [ { "firstName":"Bill" , "lastName":"Gates" }, { "firstName":"George" , "lastName":"Bush&qu

自己写的一个简单PHP采集器

<?php //**************************************************************** $url = "http://book.sina.com.cn/nzt/lit/zhuxian2/index.shtml";// 图书地址 $ver = "old"; //新旧版本 //**************************************************************** $

20150604jq写的一个小轮播器

图片替换掉即可,图片大小在样式里设置 ============html==================== <div class="banner"> <div class="left"><span class="prev">←</span></div> <div class="right"><span class="next"

对象属性访问的总结

实这几个方法之间的差异主要在属性是否可可枚举,是来自原型,还是实例. 方法 适用范围 描述 for..in 数组,对象 获取可枚举的实例和原型属性名 Object.keys() 数组,对象 返回可枚举的实例属性名组成的数组 Object.getPropertyNames() 数组,对象 返回除原型属性以外的所有属性(包括不可枚举的属性)名组成的数组 for..of 可迭代对象(Array, Map, Set, arguments等) 返回属性值 原文地址:https://www.cnblogs.

(原创)多系统间需要对接,我写了一个接口框架。实用性非常强,写出来大家交流。需要的可以直接搬过去用。(第1篇)

业务是这样:有个手机app,在ios或者android上开发的,他需要访问服务器数据.我在服务器上,做了一个接口,专门开放一些数据给app去用. 我写的接口优势:我写的这个接口,全部是面向对象结构,代码简单而非常好用,极易扩展.可读性很强,容错性高. 个人建议有需要的同学可以直接拿去用到项目中..我会一步步讲他的制作方法. 第1步,创建一个工程,在工程中,创建一个网站,以及一个业务操作类库.如下图: 上图是网站. 上图是类库 第2步,创建几个根类.cs文件.如上图,创建:Post.cs文件:用于

因为业务需要,用nodejs写了一个css解析器,因为是基础库,想开源,不知道有没有人需要。

一般而言htmlparser的解析使用得比较多,node库中已经有了,npm install -g htmlparser2就可以安装. 这段时间要实现nodejs上的安全扫描,需要对html,css,js进行解析,css主要是限制一些绝对定位,浮层和url,防止产生钓鱼或攻击.所以写了一个css的解析器. 感觉 这些基础库应该公开出去,但是不知道有多少人有这个需求.

XML和对象属性互转的基类

本人做了一个XML和对象属性互转的基类,现在放上来有兴趣拿去看一下,用法很简单,声明一个BaseConversion的子类,该子类与你想转换的对象相对应,然后覆盖基类的两个虚方法,然后在里面写元素与对象属性的转换即可以,废话少说了,还是看代码了,例子也懒得去写了,相信不会很难看懂的: unit XMLConversion; {*******************************************  * brief: XML和对象属性的转换  * autor: linzhenqun

python0.16------构造函数/析构函数/self详解/重写/访问限制/对象属性和类属性/@property/运算符重载

构造函数:__init__()引子:因为每个人一出生都是不一样的.因此,如果在Person类中直接给类元素赋值有问题,它会导致每个人的初始状态相同,这不符合大自然的逻辑.应该根据每个人的特点,给每个出生的人不一样的特性.可以通过构造函数实现这个想法.__init__()函数在使用类创建对象自动调用.注意:如果不显式写出构造函数,默认会添加一个空的构造函数. 使用构造函数:def __init__(self,name,age,height,weight):#一般定义属性在构造函数里面定义. sel