自己理解的javascript 的对象和类理解
首先需要先理解类和对象的意义,我个人理解如下:
类:对象的抽象化;
对象:类的实体;
javascript中没有class关键字和类的用法,只能用伪类来做类的,所以要用function来定义累的名字;
如:
function myClass(){
this.name="张三";
}
这样myClass方法才能用原型连接 prototype;这样才能扩展此类;
也可以用 new myClass();这个类
javascript中有对象,简单的写法就是
var obj={name:"张三"}
因为obj本身就是一个对象,不能实例化(即不能用new关键字);
我自己从网上找了几个相关例子,自己也写了写,在此粘出代码希望可以更好的理解
var Person=(function(){
function Person(){
this.name='person';
this.age=18;
this.init=function(name,age){
this.name = name;
this.age = age;
}
}
Person.prototype={
k:function(){
alert(this.name)
},
s:function(){
alert(this.age)
}
}
return Person;
})();
var Dog = (function(){
function Dog(){
this.name='dog';
this.age=11;
}
return Dog;
})();
var p = new Person();
//p.k();
p.init('张三',70)
//p.k();
delete p.name;
Dog.prototype = Person.prototype;
Dog.prototype.init=function(name,age){
this.name = name;
this.age=age;
}
var d = new Dog();
//d.k();
Object.extend=function(destination,source){
for(property in source){
destination[property]=source[property];
}
return destination;
}
Object.prototype.extend = function(object){
return Object.extend.apply(this,[this,object])
}
function Rect(){
}
//Rect.prototype=(new Person).extend({
// add:function(){
// alert('add');
// },
// show:function(){
// alert('show')
// }
//});
//var r = new Rect();
//r.show();
//r.k();
function JC(){
}
var j = new JC();
j.extend({
a: function(){
alert('a');
},
d:function(){
alert('d');
}
});
j.a();
自己理解的javascript 的对象和类理解的更多相关文章
- javascript的对象、类和方法
1.类和对象的概念: 1.所有的事物都是一个对象,而类就是具有相同属性和行为方法的事物的集合 2.在JavaScript中建立对象的目的就是将所有的具有相同属性的行为的代码整合到一起,方便使用者的管理 ...
- JavaScript检测对象的类属性
function classof(o) { if(o === null) { return "Null"; } if(o === undefined) { return " ...
- SharePoint JavaScript 客户端对象使用视频教程
本次视频教程是为大家介绍如何使用SharePoint JavaScript客户端对象,包括对于站点.列表.文档库.列表项.文件夹.文件和附件等基本对象的操作,同时,为大家举几个简单的应用的例子,让大家 ...
- 简述JavaScript对象、数组对象与类数组对象
问题引出 在上图给出的文档中,用JavaScript获取那个a标签,要用什么办法呢?相信第一反应一定是使用document.getElementsByTagName('a')[0]来获取.同样的,在使 ...
- JavaScript基于对象(面向对象)<一>类和对象
javascript中一切皆对象,比如:Array,Date.....这些都是对象.javascript中没有class的定义,function既是定义函数,也可以是定义类.function Obj( ...
- Javascript中对象的Obeject.defineProperty()方法-------------(ES5/个人理解)
在讲到Obeject.defineProperty()方法之前先得说明一下ECMAScript中有两种属性:数据属性和访问器属性. 两种属性存在的意义:描述对象属性(key)的一些特性,因为这些属性是 ...
- 深入理解Javascript window对象
首先看我们的源代码. <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> ...
- Effective JavaScript Item 51 在类数组对象上重用数组方法
Array.prototype对象上的标准方法被设计为也能够在其他对象上重用 - 即使不是继承自Array的对象. 因此,在JavaScript中存折一些类数组对象(Array-like Object ...
- JavaScript 浅析数组对象与类数组对象
数组(Array对象) 数组的操作 创建数组方法 添加与修改数组元素 删除数组元素 使用数组元素 遍历数组元素 多维数组 数组相关的函数 concat() join() pop() push() sh ...
随机推荐
- iOS-TCP/IP、Http、Socket的区别
网络由下往上分为 物理层.数据链路层.网络层.传输层.会话层.表示层和应用层. 通过初步的了解,我知道IP协议对应于网络层,TCP协议对应于传输层,而HTTP协议对应于应用层, 三者从本质上来说没有可 ...
- 《JavaScript Ninja》之挥舞函数
挥舞函数 匿名函数为什么如此重要 通常使用匿名函数的情况是,创建一个供以后使用的函数.例如,将匿名函数保存在一个变量里,将其作为一个对象的方法,或者是将匿名函数作为一个回调.-->在这些情况下, ...
- u32 mac以及arp匹配
# Examples that match MAC (a big "thank you" to Julian Anastasov for this!): M0 through M5 ...
- 快速用springmvc搭建web应用-超越昨天的自己系列(10)
Demo地址:http://pan.baidu.com/s/1sjttKWd 创建命令: mvn archetype:generate -DgroupId=com.witown.open.demo - ...
- VMware中三种网络连接的区别
1.概述 大家在安装完虚拟机后,默认安装了如下图的两块虚拟网卡——VMnet1和VMnet8,其中VMnet1是host网卡,用于host方式连接网络:VMnet8是NAT网卡,用于NAT方式连接网络 ...
- kafka集群和zookeeper集群的部署,kafka的java代码示例
来自:http://doc.okbase.net/QING____/archive/19447.html 也可参考: http://blog.csdn.net/21aspnet/article/det ...
- Android拍照保存图片内存大小
图片拍摄的大小会随着硬件而变化,比如,像素高的相机拍出来的图片要比像素低的图片内存要大. 如此一来,针对机型可能调用camera app保存照片的时候,图片大小会不一样. 为了缩小图片大小,我们需要把 ...
- php部分--数组(包含指针思想遍历数组);
1.创建并输出数组 (1)相同数据类型的数组$attr=array(1,2,3,4,5); print_r($attr); echo "<br>"; $sttr1=ar ...
- leetcode 91 Decode Ways ----- java
A message containing letters from A-Z is being encoded to numbers using the following mapping: 'A' - ...
- Ubuntu安装Mysql+Django+MySQLdb
安装Mysql sudo apt-get install mysql-server mysql-client root@IdeaPad:/# mysql -u root -p Enter passwo ...