javascript面向对象的写法01
类和对象
js中内置有对象的概念。下面是对象创建的一些方式。
var obj = new Object();
obj.a = 1;
obj.func1 = function(){};
另外有两种创建对象的方式
var obj = {};
function ClassA() {
}
第一种是js的字典,字典本身也是一个js对象。因为动态语言的特性它可以存放各种类型的数据,包括函数指针
var obj = {
"attr1": 1,
"attr2": [],
"fun1": function(a, b) {
return a + b;
}
};
var a = obj.attr1;
var b = obj.fun1(1, 6);
obj.attr1 = 9;
var c = obj.attr1;
这样字典对象本身的使用语法跟其他语言类也是相似的。它可以看作一个简单的对象使用。它与第一种方式差不多,是第一种的替代方案。
function的作用
function func1(a, b) {
return a + b;
}
func1(1, 2);
function A() {
}
A.a = ;
alert(A.a);
function A() {
}
var obj = new A();
obj.attr = ;
它可是被看成是对象的构造函数
function A(a, b) {
this.a = a;
this.b = b;
}
var obj = new A();
obj.a;
this指向的是当前对象的引用,这个和其他语言类似。上例代码相当于
function A() {
}
var obj = new A();
obj.a = a;
obj.b = b;
(注:这个简单的转换对后续的内容的理解有所帮助)
function ClassA() {
this.a = 1;
this.b = [];
this.func1 = function() {
return this.a + 100;
};
}
使用的时候使用new关键字,new出一个对象来
var objA = new ClassA();
var a = objA.a;
var b = objA.func1();
objA.a = 200;
上面定义类的方式可以看成如下
function ClassA() {
} //js是动态语言,js对象的属性不需要定义对象的时候写好,而是可以在任意时候设置,这是动态语言的特点。
var objA = new ClassA();
objA.a = 1;
objA.b = [];
objA.func1 = function(){return this.a + 100};
javascript面向对象的写法01的更多相关文章
- javascript面向对象的写法03
javascript面向对象的写法03 js一些基础知识的说明 prototype 首先每个js函数(类)都有一个prototype的属性,函数是类.注意类有prototype,而普通对象没有. js ...
- javascript面向对象的写法及jQuery面向对象的写法
文章由来:jQuery源码学习时的总结 在JS中,一般的面向对象的写法如下: function Cao(){}//定义一个构造函数 Cao.prototype.init = function(){}/ ...
- javascript面向对象的写法02
面向对象特性的初步实现 1.封装 利用作用域封装变量 作用域的概念是一样的,for语句,if语句等这些作用域内定义的变量只能作用域内访问,函数内定义的变量只能函数内访问. function Class ...
- Learn JavaScript(面向对象的程序设计01)
最新更新请访问: http://denghejun.github.io JavaScript与OOP JavaScript作为web前端一种重要的脚本技术,已被大多开发人员所熟知.compare ...
- [js高手之路] javascript面向对象写法与应用
一.什么是对象? 对象是n个属性和方法组成的集合,如js内置的document, Date, Regexp, Math等等 document就是有很多的属性和方法, 如:getElementById, ...
- JavaScript高级:JavaScript面向对象,JavaScript内置对象,JavaScript BOM,JavaScript封装
知识点梳理 课堂讲义 1.JavaScript面向对象 1.1.面向对象介绍 在 Java 中我们学习过面向对象,核心思想是万物皆对象. 在 JavaScript 中同样也有面向对象.思想类似. 1. ...
- 浅谈javascript面向对象
我们常用的两种编程模式 POP--面向过程编程(Process-oriented programming) 面向过程编程是以功能为中心来进行思考和组织的一种编程方法,它强调的是系统的数据被加工和处理的 ...
- Javascript面向对象(封装、继承)
Javascript 面向对象编程(一):封装 作者:阮一峰 Javascript是一种基于对象(object-based)的语言,你遇到的所有东西几乎都是对象.但是,它又不是一种真正的面向对象编程( ...
- javascript面向对象(一):封装
本文来自阮一峰 学习Javascript,最难的地方是什么? 我觉得,Object(对象)最难.因为Javascript的Object模型很独特,和其他语言都不一样,初学者不容易掌握. 下面就是我的学 ...
随机推荐
- C++_异常8-异常、类和基础
异常.类和继承以三种方式相互关联. 首先,可以像标准C++库所做的那样,从一个异常类派生出另一个. 其次,可以在类定义中嵌套异常类声明来组合异常. 第三,这种嵌套声明本身可以被继承,还可以作为基类. ...
- vi vim 查找替换
#查找# / 光标向下查找 ?光标向上查找 按键盘n,继续查找 #替换# :s/hello/test/ 替换光标所在行第一个hello为test :s/hello/test/g 替换光标所在行所有h ...
- A. Little C Loves 3 I Codeforces Round #511 (Div. 2) 【数学】
题目: Little C loves number «3» very much. He loves all things about it. Now he has a positive integer ...
- window环境下安装Python2和Python3
一. python 安装 1. 下载安装包 https://www.python.org/ftp/python/2.7.14/python-2.7.14.amd64.msi # 2.7安装包 htt ...
- dataTable 加了竖向滚动条导致列头样式错位的问题 / 亲测可用,不好用你打我,用好了记得点推荐
tab在没有显示之前,容器是没有高度宽度的,而dt在自动计算高度和宽度时是获取的外部容器的高度和宽度,当切换tab时,dt获取不到这个高度宽度,导致列头都挤在一起,是用下面代码解决此问题 $('a[d ...
- java中的线程(3):线程池类 ThreadPoolExecutor「线程池的类型、参数、扩展等」
官方文档: https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ThreadPoolExecutor.html 1.简介 pu ...
- google风格
复制一下代码即可: <?xml version="1.0" encoding="UTF-8" standalone="no"?> ...
- shell 语法
1). 条件表达式语法信息 [ 1 -eq 1 ] && echo 1 <-- 表示条件成功,执行相应操作 [ 1 -eq 1 ] || echo 1 ...
- 常用Redis命令
在 Windows 下配置 Redis 集群 在 Windows 下配置多个 Redis(简化配置) MicrosoftArchive/redis 官方Redis集群搭建文档 Redis命令 Cent ...
- k8s单节点集群部署应用
之所以用k8s来部署应用,就是因为k8s可以灵活的控制集群规模,进行扩充或者收缩.生产上我们要配置的参数较多,命令行的方式显然不能满足需求,我们应该使用基于配置文件的方式.接下来做一个部署的demo: ...