<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>javascript自定义对象</title>
<script type="text/javascript" language="javascript" src="my.js"></script>
</head> <body>
<script type="text/javascript" language="javascript">
//写构造函数----------------------------------------- //1.写构造函数
function Person(){ }
//2创建对象
var p=new Person();
//3绑定属性
p.name="张三";
p.age=23; //4绑定函数
p.say=sayHi; //5调用
p.say(); document.write(p+"<br/>");
document.write( p.name+"<br/>"); function sayHi(){
document.write( "hello hi <br/>" );
}
</script>
<script type="text/javascript" language="javascript">
//写构造函数的另一种形式-----------------------------------------
//1创建构造函数
function Shape(x,y){
this.x=x;//this 代表当前对象
this.y=y;
this.say=function(){
document.write("这个是一个函数<br/>");
}
} //创建对象
var shape=new Shape(12,34); //调用
document.write( shape +"<br/>");
document.write(shape.x+"<br/>");
shape.say(); //动态修改属性
delete shape.x;//删除对象的x属性
shape.say=null;//直接删除该方法
shape.say=function (){
document.write("重写前面的方法!<br/>");
}
document.write( shape.x+"<br/>");//undefined 没有找到该属性
shape.say();//这里会报错 </script>
<script type="text/javascript" language="javascript">
//Object 形式的-----------------------------------------
document.write( Math.constructor +"<br/>");
var p=new Object();//这里的new关键字可以不要var p= Object();
p.name="jack";
p.gender="male";
p.eat=function(){
document.write(this.name+"<br/>"+"eat..............");
}
document.write(p.name+" : " +p.gender+"<br/>");
p.eat(); </script>
<script type="text/javascript" language="javascript">
//字面值形式-------------------------------------
var person={
name:"张三",
age:14,
sleep:function(){
document.write(this.name+"sleep。。。。。。。。。。。。<br/>");
},
}; document.write( person.name+":这个是一个名字"+person.age+"<br/>");
person.sleep(); </script>
</body>
</html>
<!-----------
javascript中内置的对象有限,不能满足所有项目开发的要求,所以javascript就提供了开发者自定义对象的功能 创建自定义对象的几种方式:
1.构造函数
1.1写构造函数
1.2创建对象
1.3属性绑定
1.4函数绑定 缺点:没创建一个对象都要写一个构造函数 2.Object
所有的对象都是Object
2.1直接使用javascript语言中默认的Object构造函数创建对象
2.2绑定属性
2.3绑定函数 特点:new关键字可以不要 3.字面值
无需使用任何的构造函数,直接使用{}代表一个对象。在{}中可以指定属性和函数 -------->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>javascript中的方法prototype和call</title>
</head> <body>
<script type="text/javascript" language="javascript">
//prototype ----------------------------------------
function Person(name){
//对象方法
this.name=name;
this.Introduce=function(){
alert("my name is "+this.name);
}
}
//类方法
Person.Run=function(){
alert(" i can run");
}
Person.prototype.IntrodeceChinese=function(){
alert("我的名字是:"+this.name);
} //测试 var p=new Person("张三");
p.Introduce();
Person.Run();
p.IntrodeceChinese(); </script>
<script type="text/javascript" language="javascript">
//javascript中的每个对象都有prototype属性,Javascript中对象的prototype属性的解释是:返回对象类型原型的引用。 //可以出现这种情况:A的prototype是B的实例,同时B的prototype也是A的实例。 function baseClass(){
this.showMsg=function(){
alert("baseClass::showMsg");
}
} function extendsClass(){
} extendsClass.prototype=new baseClass();
var instance=new extendsClass(); instance.showMsg();
</script>
<script type="text/javascript" language="javascript">
function baseClass(){
this.showMsg=function(){
alert("baseClass::showMsg");
}
} function extendsClass(){
//假如本身也有一个showMsg方法,函数运行时会先去本体的函数中去找,如果找到则运行,找不到则去prototype中寻找函数。或者可以理解为prototype不会克隆同名函数。
this.showMsg=function(){
alert("extendsClass:showMsg");
}
} extendsClass.prototype=new baseClass();
var instance=new extendsClass(); instance.showMsg();
</script>
<script type="text/javascript" language="javascript">
//如果我想使用extendClass的一个实例instance调用baseClass的对象方法showMsg怎么办?
function baseClass(){
this.showMsg=function(){
alert("baseClass::showMsg");
}
} function extendsClass(){
this.showMsg=function(){
alert("extendsClass:showMsg");
}
}
extendsClass.prototype=new baseClass();
var instance=new baseClass(); var baseInstance=new baseClass();
baseInstance.showMsg.call( instance );//显示baseClass::showMsg </script>
</body>
</html> 这个是引用的:http://www.cnblogs.com/yjf512/archive/2011/06/03/2071914.html 的这位老大的,只是自己测试了下

javascript创建自定义对象和prototype的更多相关文章

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

    Javascript 中创建对象,可以有很多种方法. Object构造函数/对象字面量: 抛开设计模式不谈,使用最基本的方法,就是先调用Object构造函数创建一个对象,然后给对象添加属性. var ...

  2. JavaScript中创建自定义对象的方法

    本文内容参考JavaScript高级程序设计(第3版)第6章:面向对象的程序设计 ECMA-262中把对象定义为:“无序属性的集合,其属性可以包含基本值.对象或者函数.”我所理解的就是对象就是一个结构 ...

  3. JS 创建自定义对象的方式方法

    一.概述 还记得刚开始做项目的时候,看到别人封装的js工具类百思不得其解,看来看去看不懂,深挖一下,其实就是自己没有耐下心去看,但是遇到问题不解决,总会遇到的,今天还是遇到了,就去找了找帖子,重新思考 ...

  4. javascript的自定义对象/取消事件/事件兼容性/取消冒泡

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  5. JS创建自定义对象

    普通对象的创建: 创建对象: 1.people = new Object(); people.name = "lin"; people.age = "26“; 2.创建字 ...

  6. JavaScript 创建类/对象的几种方式

    在JS中,创建对象(Create Object)并不完全是我们时常说的创建类对象,JS中的对象强调的是一种复合类型,JS中创建对象及对对象的访问是极其灵活的. JS对象是一种复合类型,它允许你通过变量 ...

  7. JavaScript—创建正则对象

    创建正则对象 方式1: var reg = new RegExp('\d', 'i');var reg = new RegExp('\d', 'gi'); 方式2: var reg = /\d/i;v ...

  8. 通过JavaScript创建Qml对象

    有两种方法可以创建,都是全局对象Qt提供的方法 一:用Qt.createComponent加载一个qml文件并创建Component 二:用Qt.createQmlObject从一个qml字符串创建C ...

  9. JavaScript创建Map对象(转)

    JavaScript 里面本身没有map对象,用JavaScript的Array来实现Map的数据结构. /* * MAP对象,实现MAP功能 * * 接口: * size()     获取MAP元素 ...

随机推荐

  1. C#图像处理(2):给图片加白边

    C#图片处理给图片添加白边: /// <summary> /// 在图片上方加入白边 /// </summary> /// <param name="Img&q ...

  2. AngularJs练习Demo3

    @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport&quo ...

  3. silverlight 双坐标轴

    public void CreateLine(Grid oGrid, string sTitle, string sTableName, bool ifGetSig, string sYUint, s ...

  4. 2 读取solr下的索引文件(lucene文件)

    import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.standard.StandardAnaly ...

  5. javascript中定义事件的三种方式

    在javascript中,可以为某个元素指定事件,指定的方式有以下三种: 1.在html中,使用onclick属性 2.在javascript中,使用onclick属性 3.在javascipt中,使 ...

  6. HTML5简介、视频

    HTML5 建立的一些规则: 新特性应该基于 HTML.CSS.DOM 以及 JavaScript. 减少对外部插件的需求(比如 Flash) 更优秀的错误处理 更多取代脚本的标记 HTML5 应该独 ...

  7. web后台获取不到session中的值(loading sessions from persistent storage),后改用JS传值

    线上的程序似乎从session中取不到domain数据,重启了一下tomcat查看log日志发现,居然有报错.错误信息如下 22-Sep-2016 00:52:16.562 SEVERE [local ...

  8. python作业day3修改配置文件

    思维还有点乱,撸代码到深夜,先上代码吧.(我是跟着武sir的思路的) 流程图: 代码(有注释): #!/usr/bin/env python # -*- coding:utf-8 -*- import ...

  9. tp28xx port pin (open-drain )and (push-pull) 和open collector)

    具有开漏(OD)输出的器件是指内部输出和地之间有个N沟道的MOSFET(T1),这些器件可以用于电平转换的应用.输出电压由Vcc'决定.Vcc'可以大于输入高电平电压VCC(up-translate) ...

  10. PowerShell 中进行列表展示的排序-倒序

    Order Your Output by Easily Sorting Objects in PowerShell ★★★★★ ★★★★ ★★★ ★★ ★ January 10, 2012 by Th ...