<html>

<head>
<title>Object</title>
</head>
<body> <script type="text/javascript">
//6大基本类型:undefined,null, string,boolean,number,对象类型(js内置的对象如Number、数组,宿主环境如浏览器中的window对象document对象,自己创建的)
//自己创建的对象,第一种,var形式创建对象:
var p = {
name:"cj",//属性的名字是name,对象中属性的名字可以不加引号,逗号分割,
work:function () { //方法
console.log("working...");
},
_age:18, //下划线表示私有
get age(){//不是方法的定义,没有冒号
return this._age;
},
set age(val){//形参没有类型
if(val <0 || val >150){
throw new Error("invalid value");
}else{
this._age = val;
}
},
address:{
home:"jiating",
office:"office" } };
console.log(p.name);
console.log(p._age);
console.log(p['age']);//属性可以用点访问,也可以用中括号访问
console.log(p.address.home);
var r = p && p.address && p.address.home //前面p和p.address都不为空才执行最后面
console.log(r);//jiating //get,set writable ,enuerable,configurable,value
//第二种,通过object函数创建对象,
var o = new Object();
o.name = 'ss';
o["abc"] = "abc"; //第三种:defineProperties,definePropertie Object.defineProperties(p,{//给p对象加属性
salary:{
value:1000,
writable:false
},
gender:{
value:true
},
height:{
get:function(){
return 180
},
set:function(val){
console.log(val);
}
}
});
console.log(p.salary);//
console.log(p.gender);//true
console.log(p.height);//
p.height = 324;
</script>
</body> </html>
for(sx in p){//遍历对象的所有属性
console(sx);
console(p.sx);
} console("name" in p);//name属性是否在p中,true
console(p.hasOwnProperty("name"));//p是否有name属性
delete p.name;//删除p的name属性,有些属性是删除不了的,如tostring() //writeable:属性是否可写
//enuerable:属性在遍历的时候是否出现
//configurable:属性是否可以删除,是否可以改变他的可写等特性
Object.getOwnPropertyDescriptor(p,"address");//得到p对象的address属性的特性

js--11对象的创建方式的更多相关文章

  1. js获取对象值的方式

    js获取对象值的方式 var obj = {abc:"ss",nn:90}; var v1 = obj.abc;//使用点的方式 var v2 = obj["abc&qu ...

  2. js 对象的创建方式和对象的区别

    js一个有三种方法创建对象,这里做一个总结. 1.对象直接量 所谓对象直接量,可以看做是一副映射表,这个方法也是最直接的一个方法,个人比较建议, 1 2 3 4 5 6 7 8 9 10 11 12 ...

  3. js中对象的创建

    json方式,构造函数方式,Object方式,属性的删除和对象的销毁 <html> <head> <title>js中的对象的创建</title> &l ...

  4. js:对象的创建(为prototype做铺垫)

    /**  *在js中并不存在类,所以能够直接通过Object来创建对象,可是使用这样的方式创建有一  *弊端:因为没有类的约束,无法实现对象的反复利用,而且没有一种规范约定,在操作时easy带来问题. ...

  5. 控制对象的创建方式(禁止创建栈对象or堆对象)和创建的数量

    我们知道,C++将内存划分为三个逻辑区域:堆.栈和静态存储区.既然如此,我称位于它们之中的对象分别为堆对象,栈对象以及静态对象.通常情况下,对象创建在堆上还是在栈上,创建多少个,这都是没有限制的.但是 ...

  6. 前端小课堂 js:函数的创建方式及区别

    js 函数的创建大体有这几种方式: -1-函数表达式(函数字面量): 说白了就是把一个函数赋值给了一个变量. var fun1 = function(index){ alert(index); } f ...

  7. JS查看对象属性的方式

    var person = { type: 'person', say: function(){ console.log("Hellow World!") } } //以person ...

  8. js访问对象属性的方式“.”与“[]”的区别

    . 和 [] 没多大区别,作用完全相同.但是 一般情况下建议使用 . 写法,这样比较接近其它语言的面向对象写法,易读 如果属性名是动态的(比如变量中),只能使用 [] 写法.如 var person= ...

  9. js对象的几种创建方式和js实现继承的方式[转]

    一.js对象的创建方式 1. 使用Object构造函数来创建一个对象,下面代码创建了一个person对象,并用两种方式打印出了Name的属性值. var person = new Object(); ...

随机推荐

  1. Sqoop框架基础

    Sqoop框架基础 本节我们主要需要了解的是大数据的一些协作框架,也是属于Hadoop生态系统或周边的内容,比如: ** 数据转换工具:Sqoop ** 文件收集库框架:Flume ** 任务调度框架 ...

  2. 我的Spring MVC第一个应用 (最终版)

    项目结构图: 代码如下: Product package com.mstf.bean; import java.io.Serializable; /** * Product类,封装了一些信息,包含三个 ...

  3. 洛谷1440 求m区间的最小值 单调队列

    题目描述 一个含有n项的数列(n<=2000000),求出每一项前的m个数到它这个区间内的最小值.若前面的数不足m项则从第1个数开始,若前面没有数则输出0. 输入格式: 第一行两个数n,m. 第 ...

  4. NOIP2016 天天爱跑步(树上差分)

    题意 给定一棵树,从时刻 0 开始,有若干人从 S[i] 出发向 T[i] 移动,每单位时刻移动一条边 对于树上每个点 x,求 w[x]  时刻有多少人恰好路过 x N,M≤300000 题解 从上午 ...

  5. [洛谷P2394]yyy loves Chemistry I

    题目大意:给你一个实数x($0<x\leq 1$),要你求x/23的值(保留8位小数). 解题思路:此题用double读的精度是不够的,用long double直接读入也会WA,正确做法是“sc ...

  6. websocket调试工具

    http://www.blue-zero.com/WebSocket/ wss://yy.xxx.com/video/websocket/client.ws

  7. Systemd曝3漏洞,大部分Linux将受到攻击

    Linux 系统与服务管理工具 Systemd 被曝存在 3 大漏洞,影响几乎所有 Linux 发行版. Systemd 是 Linux 系统的基本构建块,它提供了对系统和服务的管理功能,以 PID ...

  8. Vue+ElementUI: 手把手教你做一个audio组件

    目的 本项目的目的是教你如何实现一个简单的音乐播放器(这并不难) 本项目并不是一个可以用于生产环境的element播放器,所以并没有考虑太多的兼容性问题 本项目不是ElementUI的一个音频插件,只 ...

  9. HBase为什么快 HBase原理。 HBase几个问题

    背景色表示可以自己做实验搞定 1 模拟一组数据 1.2.3.4.5.6.7.8.9.10     1 入 限定符 'one'     2 入 'two'     3 入 'three'     4 f ...

  10. Gradle编译spring3.x报错找不到itextpdf4.2.2解决方案

    google搜到一篇文章:http://www.bdtool.net/blog_356.html 试了文章里的两个方法,方法一不行,方法二有点搞头,但是还有些错.试着试着,突然成功了~ 我是这么做的 ...