自己理解的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 ...
随机推荐
- SQL float 保留两位小数
1. SQL 数据库里类型改为numeric,小数位设置成22. 在SQL语句中转换:select convert(字段,numeric(18,2)) AS 字段3. 在DataFormatStrin ...
- installshield
转载出处:海洋女神
- [转载]架构指南 : Java1.7+Eclipse luna + Maven 3.2.5 +spring 4.1.4
1. 环境配置 a) Java 1.7 b) Eclipse luna c) Maven3.2.5 d) spring 4.1.4 2. ...
- The Hidden Pitfalls of AsyncTask
http://logc.at/2011/11/08/the-hidden-pitfalls-of-asynctask/
- Linux bashrc和profile的用途和区别
导读 使用终端ssh登录Linux操作系统的控制台后,会出现一个提示符号(例如:#或~),在这个提示符号之后可以输入命令,Linux根据输入的命令会做回应,这一连串的动作是由一个所谓的Shell来做处 ...
- 关于时间的util类,以后方便查阅
public static int lastDayOfMonth(int year, int month) { if (month == 2) { if (isLeapYear ...
- Letter Combinations of a Phone Number
Given a digit string, return all possible letter combinations that the number could represent. A map ...
- HDU 1231 最大连续子序列 --- 入门DP
HDU 1231 题目大意以及解题思路见: HDU 1003题解,此题和HDU 1003只是记录的信息不同,处理完全相同. /* HDU 1231 最大连续子序列 --- 入门DP */ #inclu ...
- 论文笔记之:Generative Adversarial Nets
Generative Adversarial Nets NIPS 2014 摘要:本文通过对抗过程,提出了一种新的框架来预测产生式模型,我们同时训练两个模型:一个产生式模型 G,该模型可以抓住数据分 ...
- http cookies
https://msdn.microsoft.com/en-us/library/ms178194.aspx?f=255&MSPPError=-2147217396 http://www.as ...