javascript创建对象?javascript下载官方
本篇文章给大家谈谈javascript创建对象,以及javascript下载官方对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。
JavaScript如何创建对象
JavaScript创建对象的几种方式
潜意识里,JavaScript不能算是面向对象的语言,要算也只能说是趋向面向对象的一种语言,至少它不能很好的吻合面向对象最基本的三大特性(继承、封装、多态),当然有很多人就认为JavaScript是面向对象语言,好像也说得没错,因为面向对象也能在JavaScript中实现,比如说继承、封装吧也都可以在JavaScript中实现,但是实现方便吗?所以我觉得很疑惑。看到网上有一网友评价的很好,"面向对象只是一种思想,语言只能说是否很好的支持面向对象的特性。"如果对面向对象有一定的认识,用C也能写出面向对象的程序,javascript也是如此。所以说不能断言说JavaScript是面向对象语言,呵呵,自认为是菜鸟,不敢妄自断言,还是看看代码:
1.利用json创建对象
var company={};
company.name='华为';
company.address='北京';
company.produce= function(message)
{
alert(message);
}
2.使用JavaScript中的Object类型
company= new Object();
company.name='淘宝';
company.address='杭州';
company.produce= function(message)
{
alert(message);
}
3.通过创建函数来生成对象
company= function()
{
this.name='新浪';
this.address='北京';
this.produce= function(message)
{
alert(message);
}
}
4.利用浏览器window对象
window.name='腾讯';
window.address='北京';
window.produce= function(message)
{
alert(message);
}
扩展:
1.对象复制
emptyObject= new Object();
company.apply= function(o, c,)
{
if(o&& c&& typeof c=='object')
{
for(var p in c)
{
o[p]= c[p];
}
}
return o;
};
emptyObject= Ext.apply(emptyObject,company);
2.对象复制(函数方式)
var copyOO= new Function();
copyOO.prototype= company;
var newcopyOO= new copyOO();
javascript中创建对象的几种方式
1.对象的字面量的形式var obj={}
2.new的方式来调用构造函数的形式
Object是个构造函数var obj= new Object(); obj.name='黄忠'
3.工厂方法
functionfn(name){
//1.创建一个空对象
varobj=newObject()
//2.给对象添加属性和方法
obj.name=name
//3.返回一个obj对象
returnobj
}4.构造函数
帕斯卡命名第一个单词的第一个字母大写,后续的每一个单词的第一个字母都大写
通过this动态的给构造函数添加属性和方法
functionHero(name,weapon,equipment,blood){
//this动态的给对象增加成员
//this指向了当前对象
this.name=name;
this.weapon=weapon;
this.equipment=equipment;
this.blood=blood;
this.attack=function(){
console.log(this.name+':攻击');
}
this.run=function(){
console.log(this.name+':加速跑');
}
}
varhero1=newHero('黄忠','弓箭',['头盔','靴子'],100);
JavaScript中创建类/对象的几种方法总结_javascript技巧
在JS中,创建对象(Create Object)并不完全是我们时常说的创建类对象,JS中的对象强调的是一种复合类型,JS中创建对象及对对象的访问是极其灵活的。
JS对象是一种复合类型,它允许你通过变量名存储和访问,换一种思路,对象是一个无序的属性集合,集合中的每一项都由名称和值组成(听起来是不是很像我们常听说的HASH表、字典、健/值对?),而其中的值类型可能是内置类型(如number,string),也可能是对象。
一、由一对大括号括起来
代码如下:
var emptyObj={};
var myObj=
{
'id': 1,//属性名用引号括起来,属性间由逗号隔开
'name':'myName'
};
//var m= new myObj();//不支持
不知你注意到对象都是用 var声明的没有,像上面的代码,就只是简单的声明一个对象,它只有一份拷贝,你不能像实例化类对象一样对它采用new操作,像上面代码的注释部分。这样就极大的限制了对象的重用,除非你建立的对象只需要一份拷贝,否则考虑用其他方法建立对象。
下面一起看看如何访问对象的属性和方法。
代码如下:
var myObj=
{
'id': 1,
'fun': function(){
document.writeln(this.id+'-'+ this.name);//以"对象.属性"方式访问
},
'name':'myObj',
'fun1': function(){
document.writeln(this['id']+'+'+ this['name']);//以集合方式访问
}
};
myObj.fun();
myObj.fun1();
//结果
// 1-myObj 1+myObj
二、用 function关键字模拟 class
在 function中用 this引用当前对象,通过对属性的赋值来声明属性。如果用var声明变量,则该变量为局部变量,只允许在类定义中调用。
代码如下:
function myClass(){
this.id= 5;
this.name='myclass';
this.getName= function(){
return this.name;
}
}
var my= new myClass();
alert(my.id);
alert(my.getName());
//结果
// 5
// myclass
三、在函数体中创建一个对象,声明其属性再返回
在函数体中创建对象可利用第一点的方法,或先 new Object();再为各属性赋值。
不过用这种方式创建的对象在VS2008 SP1中是没有智能提示的。
代码如下:
function myClass(){
var obj=
{
'id':2,
'name':'myclass'
};
return obj;
}
function _myClass(){
var obj= new Object();
obj.id= 1;
obj.name='_myclass';
return obj;
}
var my= new myClass();
var _my= new _myClass();
alert(my.id);
alert(my.name);
alert(_my.id);
alert(_my.name);
//结果
// 2
// myclass
// 1
// _myclass
OK,本文到此结束,希望对大家有所帮助。