<html>
<head>
<script></script>
</head>
<body>
<!-- <script>
///////////壹开始///////////
//javascript创建对象
//函数、方法、事件处理函数、构造函数
//函数可独立存在;方法属于对象;事件处理函数处理事件;构造函数构造对象 /*
* 定义一个数组
*/
var arr = [1,2,3,4,5]; alert(typeof arr); // 弹出object,证明数组是对象 arr.push(6);
alert(typeof arr);
///////////壹结束///////////
</script> --> <!-- <script>
/**
*定义一个全局函数
*/
//function show(){
//alert(this);
//} window.show = function(){ // 为对象添加方法,不能太随意添加方法和属性,否则会覆盖已有方法和属性
alert(this);
} //调用show
window.show();
</script> -->
<!-- <script>
var arr = [1,2,3,4,5];
arr.show = function(){ // 本例中this表示函数调用者,但是new创建对象,this并不是指向调用者
alert(this);
}
arr.show();
</script> --> <!-- <script>
//构造工厂
function personFactory(name,age){
var person = new Object();
person.name = name;
person.age = age; person.showName = function(){
alert("姓名:" + this.name);
} person.showAge = function(){
alert("年龄:" + this.age);
} return person;
} var p1 = personFactory("猪",23);
var p2 = personFactory("狗",22); p1.showName();
p1.showAge(); p2.showName();
p2.showAge();
</script> --> <!-- <script>
//使用new创建js对象
function Person(name,age){ //var this = new Object(); // 等效于这句话 this.name = name;
this.age = age; this.showName = function(){
alert("姓名:"+this.name);
}
this.showAge = function(){
alert("年龄:"+this.age);
} //用new调用函数,函数内的this会指向新创建空白对象,而不是方法调用者,会自动返回该对象 //return this; // 自动返回创建对象,等效于这句话
} var p1 = new Person("小猪八",20);
var p2 = new Person("小沙沙",19); alert(p1.showName == p2.showName); // == 仅仅数值是否相等,比较的是方法,而不是属性值
</script> --> <!-- <script>
function Person(name,age){
this.name = name;
this.age = age;
} //添加原型方法,这样创建的对象都是用的同一套方法
Person.prototype.showName = function(){
alert("姓名:"+this.name);
}
Person.prototype.showAge = function(){
alert("年龄:"+this.age);
} //创建2个对象
var p1 = new Person("小猪八",22);
var p2 = new Person("我是沙沙",20); alert(p1.showName == p2.showName);
alert(p1.showName == Person.prototype.showName);
alert(p2.showName == Person.prototype.showName); </script> --> <script>
Array.prototype.sum = function(){
var sum = 0;
for(var i=0;i<this.length;i++){ // this标示调用sum方法的数组对象
sum += this[i];
}
return sum;
} var arr1 = new Array(1,2,3,4,5,6);
var arr2 = [11,22,33,44,55]; alert(arr1.sum());
alert(arr2.sum()); alert(arr1.sum == arr2.sum);
alert(arr1.sum == Array.prototype.sum);
alert(arr2.sum == Array.prototype.sum);
</script> </body>
</html>

关于javascript的面向对象知识,可以亲自敲一遍加深理解。

最新文章

  1. 2DToolkit官方文档中文版打地鼠教程(二):设置摄像机
  2. 【Java并发编程实战】-----&ldquo;J.U.C&rdquo;:锁,lock
  3. 规范和封装jdbc程序代码
  4. CentOS 6安装PostgreSQL
  5. Handler+ExecutorService(线程池)+MessageQueue模式+缓存模式
  6. Hibernate -- A unidirectional one-to-one association on a foreign key
  7. 重装系统(win7)
  8. socket、webService、RMI ?
  9. MVC-各种传值方式
  10. oracle操作语句
  11. python 接口自动化测试(三)
  12. 【Ubuntu 16】启动Eclipse Indigo报错 error code1 jdk没有配置好
  13. http 状态
  14. DOS、Mac 和 Unix 文件格式[转]
  15. RabbitMQ环境搭建
  16. MariaDB基础详解
  17. 在word 2010中采用EndNote X7插入引用
  18. Python中应用虚拟环境
  19. Linux下对inode和块的理解
  20. 015 在大数据中,关于mapreduce的粗略优化,以及mapreduce的处理过程解释

热门文章

  1. 线性表-&gt;顺序存储
  2. LeetCode 242 Valid Anagram 解题报告
  3. springboot热部署配置
  4. git 解决授权失败的方法
  5. java实现控件的移动及使用鼠标改变控件大小
  6. tp5命令行
  7. Java中几个常用类
  8. 820板子安装python
  9. mysql修改用户密码笔记(转)
  10. Remastersys打包你自己的ubuntu成iso文件