javascript对象创建

一个js对象中有 [[proto]] [[class]]  [[extensible]] 三个对象标签 ,在对象的属性上有 writable ,enumerable,configurable,value,get/set 五个属性标签

 [[proto]] 对象的原型
 [[class]]  对象所属的类型
[[extensible]] 是否可以增加新的属性
writable  对象的属性是否可写
enumerable 对象的属性是否可以枚举
configurable 对象的属性是否可配置
value 属性的值
get/set get set方法

对象的创建


字面量创建对象

var obj = {};

obj.x = 1;

obj.y = 2; 

构造函数new创建对象

function foo(){
}

foo.prototype.z = 3;

var obj = new foo();

obj.x = 4;

console.info(obj.z); //out:3   obj对象的[[proto]] 会指向构造函数的prototype对象,在foo.prototype对象上存在z属性,所有能访问到z属性的值
console.info(obj.x); //out:4

‘z‘ in obj  //true

obj.hasOwnProperty(‘z‘);  //false

in 操作符,可以遍历对象的属性,但它不保证顺序,同时会遍历对象原型链上的属性。如果只需要遍历对象本身的属性,使用hasOwnProperty();

function fun(){}
fun.prototype.z = 3;

var obj = new fun();
obj.x = 5;
obj.u = 9;

for(i in obj){
   console.info(i);  //x u z
}  

for(i in obj){
   if(obj.hasOwnProperty(i)){
       console.info(i);     //x u
     }
}

Object.create()创建对象

var obj = Object.create({x : 1});
obj.x // 1
obj.hasOwnProperty(‘x‘);// false  说明 obj的原型 执行了{x:1}


var obj = Object.create(null);
obj.toString // undefined   如果为null 它的原型会指向null

时间: 2024-09-28 16:42:27

javascript对象创建的相关文章

深入JavaScript对象创建的细节

最近深入学习javascript后,有个体会:面向对象的方式编程才是高效灵活的编程,也是现在唯一可以让代码更加健壮的编程方式.如果我们抛开那些玄乎的抽象出类等等思想,我自己对面向对象的从写程序的角度理解就是:复用和封装.复用具体就是让你尽量少写重复代码,封装就是将一些耦合度很高的逻辑放到一个程序块里,而且尽量让里面内容不受外界影响.最后的结论是:优秀的javascript代码都是面向对象的.定州市科技工业局 如何构建javascript对象?ECMA-262对对象的定义是:无序属性的集合,其属性

javascript对象创建及原型继承的研究

今天总结了下javascript关于原型继承和对象创建方面的东西,因为javascript的原型继承在使用传统面向对象语言开发的同学看来比较怪异,原型继承确实比传统OOP语言的继承理解和运用起来困难一些,当然个人觉得传统OOP的继承相对比较简单,因为中规中矩. 下面逐个的用示例说明javascript中对象创建方式,专业一点叫什么模式,主要有直接单个创建:工厂模式:提出方法类函数公用方式:构造函数模式:构造函数+原型方式:使用原型本质的方式构建(这种受过李站的<悟透javascript>一书的

JavaScript对象创建,继承

创建对象 在JS中创建对象有很多方式,第一种: var obj = new Object(); 第二种方式: var obj1 = {};//对象直面量 第三种方式:工厂模式 function Person(){ var obj = new Object(); obj.name = 'xxx'; obj.age = 12; return obj; } var p1 = Person(); typeof p1 ;// object 第四种方式:构造函数模式 var Person = functio

JavaScript对象创建与使用

使用工厂方式创建对象 <script type="text/javascript"> // 使用工厂方式(原始方式)创建对象 var ob = new Object; // 创建对象 ob.name = 'zhangsan'; // 声明对象属性 ob.age = 20; ob.gender = '男'; ob.getInfo = function(){ // 声明对象方法 return '姓名:' + this.name + ',性别:' + this.gender +

[JavaScript]对象创建方法

1.使用Object或对象字面量创建对象 (1)使用Object创建对象 var cat= new Object(); cat.name = "Tom"; cat.color= "blue"; (2)对象字面量创建对象 var cat = { name : "Tom", color : "blue" }; 局限性:当需要创建n个同类重复对象时,需要重复代码n次. 2.工厂模式创建对象 通过普通函数将对象的创建过程封装起来,给出

Javascript 中创建自定义对象的方法(设计模式)

Javascript 中创建对象,可以有很多种方法. Object构造函数/对象字面量: 抛开设计模式不谈,使用最基本的方法,就是先调用Object构造函数创建一个对象,然后给对象添加属性. 1 var student = new Object(); 2 student.name = "xiao ming"; 3 student.age = 20; 4 student.getName = function () { 5 alert(this.name); 6 } 熟悉javascrip

创建 JavaScript 对象

http://www.w3school.com.cn/js/js_objects.asp 创建 JavaScript 对象 通过 JavaScript,您能够定义并创建自己的对象. 创建新对象有两种不同的方法: 定义并创建对象的实例 使用函数来定义对象,然后创建新的对象实例 创建直接的实例 这个例子创建了对象的一个新实例,并向其添加了四个属性: 实例 person=new Object(); person.firstname="Bill"; person.lastname="

JavaScript中创建字典对象(dictionary)实例

这篇文章主要介绍了JavaScript中创建字典对象(dictionary)实例,本文直接给出了实现的源码,并给出了使用示例,需要的朋友可以参考下 对于JavaScript来说,其自身的Array对象仅仅是个数组,无法提供通过关键字来获取保存的数据,jQuery源码中提供了一种非常好的方式来解决这个问题,先看一下源码: 复制代码代码如下: function createCache() { var keys = []; function cache(key, value) {  // Use (k

3种创建、调用JavaScript对象的方法

hey you guys,两个月没有写技术博客了.作为一名有理想.有抱负的程序员,两个月不写技术博客,真该打.业精于勤,荒于嬉.行成于思,毁于随.勤奋是必不可少的,今后养成一周至少一篇博客的习惯.好了,不瞎扯了,书归正传.  今天在做项目时,遇到了需要创建JavaScript对象的情况.所以Bing了一篇老外写的关于3种创建JavaScript对象的文章,看后跟着打了一遍代码.感觉方法挺好的,在这里与大家分享一下. 一.利用函数创建对象: //定义对象 function Animal(type)