复制代码 代码如下:
/*
* JavaScript对象就是一组属性(方法)的集合
* 在该语言中如果变量名或方法名不符合声明规范,
* 则一定得用方括号“ [] ”引用它
*
*/
/**
* <1.>该语句声明了一个class1类,class1相当于构造方法,又叫构造器
* 也可说声明了一个class1方法
*/
function class1(){
this.name="xjl"; //给对象添加属性
this.say= function(){alert("大家好!");}; //给对象添加方法
};
/**
* <2.>创建实例用 new 关键字,new 操作符不仅对内部类有效,对用户定义的类也是同样的用法
* 每个对象可以看作是多个属性(方法)的集合,即 对象名.属性(方法)名 或 对象名[“属性(方法)名”]
* 方括号 '[]' 适合不确定具体要引用哪个属性(方法)的场合
*/
var a = new class1();
//alert(typeof(a)); //typeof(a) 返回a的类型
//alert(a.name); //每个对象可以看作是多个属性(方法)的集合,
//alert(a['name']); //用方括号([])引用对象的属性和方法
//下拉框对象名[下拉框对象.value] 即可获得用户所选的值 也可用 eval(“下拉框对象名.”+下拉框对象.value);
//a.say(); //调用对象的方法
//var arr=new Array();
//arr['push']('abc'); //为数组添加一个元素,其中的 push 为内置的属性
//arr['push']('1234'); //为数组添加一个元素
//alert(arr);
/**
* <二.>动态添加、修改、删除对象的属性和方法
*
*/
var obj = new Object();
//添加属性……其中的属性名可任意取
obj.name="徐建龙";
obj.sex = '男';
obj['my name'] = "xujianlong"; //使用方括号 “ [] ”可以使用非标识符字符串作为属性名称
//添加方法……方法名也可任意取,也可传参数
obj.alert = function(a){
alert(a+"你好!");
}
//修改属性,就是把属性的值改成别的内容
obj.name = "张三";
obj['name'] = 'anme';
//删除属性,就是把属性的值改成 undefined 或 null
obj.name = 'undefined';
/**
* <三>使用大括号({})语法创建无类型对象
*/
//在大括号中方属性和方法,属性与属性用逗号隔开,属性与值之间用冒号隔开
var ob = {
name:"123",
say:function(){alert("123")} //最后一个属性或方法不用逗号
}
//也可用如下方法定义对象的属性和方法
var ob1 = {"name":'123','say':function(){alert("abcd");}};
/**
*<四>prototype原型对象
* 所有的函数(function)对应的类是(Function)
* prototype 实际上就是表示了一个类的成员的集合。
* *当通过new 来获取一个类的对象时,prototype 对象的成员都会成为实例化对象的成员。
*/
function class2(){ //创建一个对象
}
var ob2 = new class2();
class2.prototype.me = function(){alert("123");} //在prototype的前面是,你所创建的类名
class2.prototype.name = "123"; //
/**
* 函数对象和其他内部对象的关系
*/
//typeof(new Function()),typeof(Function),typeof(Array),typeof(Object) 返回字符串“function”这些参数称之为构造器
//typeof(new Date()),typeof(new Array()),typeof(new Object()) 返回字符串“object”
/**
* 传递给函数的隐含参数:arguments,它具有数组的特点,但它不是数组,可用下标来访问它
*/
//arguments 中包含了一个参数 callee, 它表示对 函数对象本身的引用,如下:
var sum=function(n){
if(1==n)
return 1;
else
return n+arguments.callee(n-1);
}
//该语句表示声明一个 namespace1 的命名空间 ,如下:
var namespace1 = new Object();
namespace1.class1 = function(){alert("123");};
var obj1=new namespace1.class1(); //页面加载时就执行
/**
* 使用prototype 对象定义类成员
*/
//在创建实例的语句之后使用函数的prototype属性给类定义新成员,只会对后面创建的对象有效
//在prototype中的constructor()方法 ,相当于构造方法
function class1(){
//alert('adf');
}
//class1.prototype.constructor(); //页面加载时就执行
//用prototype 定义的简化
class1.prototype={
//放入一些属性或方法
//多个属性或方法是用逗号(,)隔开
}
//如下代码即是 静态方法和属性
class1.name="abc";
class1.say = function(){/*codes*/}
//利用反射机制,可以改变 element 中指定的样式,而其他样式不会改变,得到了所要的结果,例如:
function setStyle(_style){
//得到要改变样式的界面对象
var element=getElement();
for(var p in _style){
element.style[p]=_style[p];
}
}
//可以通过拷贝一个类的 prototype 到另外一个类来实现继承,但有缺陷。例如:
// function class4(){}
//
// function class2(){
//
//
// class2.prototype=class4.prototype; //实现的继承
// class2.prototype.f = function(){alert("a");}
//
//当对class2 进行prototype 的改变时,class4 的prototype 也随之改变
// instanceof 操作符来判断一个对象是否是某个类的实例, 例如:
var a = new class2();
a instanceof class2; //返回一个 bool ,如果 a 的class2 中的继承类,则也是 true
//一种更好的继承
for(var p in class1.prototype){
class2.prototype[p]=class1.prototype[p];
}
class2.prototype.ma=function(){
alert(123);
}
//当对class2 进行prototype 的改变时,class4 的prototype 不会改变
/**
* prototype-1.3.1框架中的类继承实现机制
*/
//-------------------------------------------------------------------------------------------
//该语句为每个对象天加一个extend 方法,代码如下;
Object.extend = function(destination, source) {
for (property in source) {
destination[property] = source[property]; //将source中所有的属性或方法都赋值给destination
}
return destination;
}
//通过Object类为每个对象添加方法extend
Object.prototype.extend = function(object) {
return Object.extend.apply(this, [this, object]);
}
Object.extend.apply(this,[this,object]);
//class1继承与class2 ,好处是 通过new class2()相当于把class2的prototype的副本赋给class1
//在class1中的prototype的改变,不会影响class2中的prototyp
class1.prototype=(new class2()).extend({/*class1要增加的属性或方法*/});
/**
* 只做了一个声明而未实现的方法,具有虚函数的类就称之抽象类 ,抽象类是不能实例化的
*/
//里虚方法不需经过声明,而直接使用了。这些方法将在派生类中实现,例如:
function c1(){}
c2.prototype={
fun:function(){ this.fn();}//其中的fn方法未定义
}
function c2(){}
c1.prototype=(new c2()).extend({
fn:function(){var x = 1;}
});
//this.initialize.apply(this, arguments);该语句是把创建对象时的参数传给initialize方法
/***
* 在javascript中也可以用 try-catch-finally 语句用于捕获异常或错误信息
* 其中在catch(e)的小括号中的e 是必须的 e是一个名为error 的对象
* e=new Error(message)来创建这个对象,异常的描述被作为error 对象的一个属性message,
*/
//该代码演示了异常的抛出
function s(a,b){
try{
if(b==0)
throw new Error("除数不能为零!........");
else
alert(a/b)
}catch(e){
document.write(e.message);///通过message 获得Error中的实参
}
}
onlaod=s(1,0);
相关推荐:
seo营销到底是什么,seo算什么营销 ,ai里面新建
什么叫改写-解读“改写”背后的艺术与技巧,网站制作建设模板图片
用AI写科普文章:科技改变写作的未来
SEO建站,开启网站优化的全新篇章!,网络营销推广合作方式
SEO武汉:如何提升武汉地区网站的搜索引擎排名,景区网站建设费用
SEO自从上线后的演变与未来发展趋势,拼多多增加关键词排名
AI会生成同一篇文章吗?揭开智能创作的神秘面纱
什么是seo平台seo教程,什么是 seoseo有何价值 ,论文写作ai助手公众号
AI人工智能文章生成器写作新纪元
SEO调整,助力网站流量爆发式增长!,江都seo优化排名
SEO兼职:如何通过SEO兼职实现收入增长与职业突破,濮阳网站建设官网
OpenAI智能诊断医疗-开启精准医疗新纪元,跟侯维静学ai
ChatGPT您的应用遇到问题,无法正常启动?如何解决并重新体验智能助手的魅力!,男头ai关键词
SEO未来:如何在变革中抢占先机,迎接数字营销的新纪元,台州网站建设分析和总结
ChatGPT+维护页面:您的智能助手之旅,安全、高效、无忧,奥特曼画图ai
好用的人工智能AI软件推荐,让你的生活更智能!
seo网站代码是什么,网站专业术语中seo意思是什么 ,拟人ai制作
ChatGPT网页打不开?快来看看这些解决办法,轻松恢复正常访问!,ai金色包装
SEO刷:让你的网站一夜之间登顶搜索引擎!,独特seo技巧
ChatGPT198元永久会员,开启智慧之门,体验AI的极致服务!,老孙教ai
SEO就是:让你的品牌脱颖而出,获得更多曝光与流量,梅岭关键词排名优化
SEO站内优化:提升网站排名的核心策略,厦门市网站优化企业
seo要寻找什么资源,怎么找seo ,ai插画描边
ChatGPT破解:让AI打破语言与思维的边界,ai模板vis
什么是SEO金融,seo是做什么的 ,ai中转程序
优化标题:如何让你的文章更具吸引力与点击力,整站网站优化解决方案
SEO热词:提升网站排名的关键秘诀,一句话营销推广怎么写好
什么是seo如何进行seo,何谓seo ,红米的AI摄影什么意思
创作新时代:自动生成文章AI的魅力与未来
ChatGPT页面无法翻阅?带你深度了解背后的原因与解决方案,pdf怎么转换ai文字
什么是seo方法,何为seo ,ai写作神器源码是什么
SEO包月服务:助力企业提升网站排名与流量的长期利器,网站建设流程 报读文库
Goanno跨级借鉴:推动创新与提升效率的秘密武器,崇明区智能ai艾灸费用
SEO代做:让你的企业轻松登顶搜索引擎,快速提升曝光率,seo 提高注册量
颠覆写作方式:免费的AI续写软件助你轻松创作
SEO和品牌营销:如何通过搜索引擎优化打造品牌影响力,建邺seo软件
ChatGPT:基于Transformer技术的语言模型,开创人工智能未来,AI独战OK
SEO开发:数字营销的核心驱动力,园区网站建设
SEO优化全攻略提升网站排名的关键步骤与未来趋势,这是什么新晋动画ai
SEO地址优化的秘诀:提升网站排名与流量的关键,临沂如何优化网站关键词
ChatGPT出现报错503?这些解决办法你必须知道!,粉墨ai说唱
软件AI的全称:人工智能驱动未来的关键力量
怎样用AI写文章?快速高效创作新技能!
AI网页效果生成:开启网站设计的新纪元,ai画线祥云
ChatGPT打不开了吗?如何快速解决常见问题,恢复顺畅体验!,ai13212511845
ChatGLM不能搜索网页内容,你真的了解它的局限性吗?,ai修复情侣
ChatGPT支付时银行卡被拒绝?教你几招轻松解决问题!,国内ai换图
优化,让生活与工作更高效-从个人到企业的全面升级,广州百度seo费用
seo要公司什么资源,做seo需要用到什么软件 ,ai明星换了
seo用到什么软件,做seo需要用到什么软件 ,皮皮ai