一个不成熟的编程员,写写 js 的面向对象
其实感觉本人 js 并未入门,甚至说也是个不合格的编程员,什么面向对象都不会,一直都往 Object 里面填方法,假装很对象的样子。
但学习嘛,这道坎还是得多试几下的,说不定就跨过去了呢。
个人喜欢用的两种构造对象的方法是这样的:
function createPerson(name, age) {
var o = new Object();
o.name = name;
o.age = age;
o.getName = function () {
return this.name;
}
return o; //使用return返回生成的对象实例
}
var person = createPerson('Jack', 19);
据说这种叫工厂模式,但对我而言也就那样啦,和直接 var o = {name:"",age:"",fn:function(){}}; 不一样的是能创多个 o 了,不错不错
function Person(name, age){
this.name = name;
this.age = age;
this.getName = function () {
return this.name;
}
}
var person1 = new Person('Jack', 19);
据说这种叫构造函数模式,但对我而言也就那样啦,就加了 new 感觉挺爽的,真的有种产生新对象的感觉了,虽然 this 是个相当磨人又可爱的小妖精。
function Person(name, age){
this.name = name;
this.age = age;
}
Person.prototype.getName = function(){
return this.name;
}
var person1 = new Person("Jack", 19);
据说这种叫原型模式,但对我而言也就那样啦,好像重写和扩展挺方便的样子。
后来好像还有混合型的,但我先不管了,再来玩玩面向对象里的继承吧,觉得是个用起来很爽的东西:
function Animal() {
this.spacies = "Animal";
}
// 继承 方法一:
function fn1() {
function Cat(name, color) {
Animal.apply(this, arguments);
this.name = name;
this.color = color;
}
var cat = new Cat("小花1", "red");
console.log(cat.spacies );
}
// 继承 方法二:
function fn2() {
function Cat(name, color) {
this.name = name;
this.color = color;
}
Cat.prototype = new Animal();
Cat.prototype.constructor = Cat;
var cat = new Cat("小花2", "red");
console.log(cat.spacies);
}
没错,我就是这么 low 逼,面向对象都还不会,你来打我呀,做人嘛,最重要的是开心咯,我下面给你吃?
一个不成熟的编程员,写写 js 的面向对象的更多相关文章
- Javascript模块化编程-require.js
转自:https://www.cnblogs.com/digdeep/p/4607131.html Javascript模块化编程(一):模块的写法 随着网站逐渐变成"互联网应用程序&quo ...
- 【异步编程】when.js
异步编程:When.js快速上手 var api = 'http://qgy18.imququ.com/file/when/d.php?cb=?'; var getData = function() ...
- JavaScript--我发现,原来你是这样的JS:面向对象编程OOP[1]--(理解对象和对象属性类型)
一.介绍 老铁们,这次是JS的面向对象的编程OOP(虽然我没有对象,心累啊,但是可以自己创建啊,哈哈). JS高程里第六章的内容,这章内容在我看来是JS中很难理解的一部分.所以分成三篇博客来逐个理清. ...
- JavaScript--我发现,原来你是这样的JS:面向对象编程OOP[2]--(创建你的那个对象吧)
一.介绍 我们继续面向对象吧,这次是面向对象编程的第二篇,主要是讲创建对象的模式,希望大家能从博客中学到东西. 时间过得很快,还是不断的学习吧,为了自己的目标. 二.创建对象 1.前面的创建对象方式 ...
- JS--我发现,原来你是这样的JS:面向对象编程OOP[3]--(JS继承)
一.面向对象编程(继承) 这篇博客是面向对象编程的第三篇,JS继承.继承顾名思义,就是获取父辈的各种"财产"(属性和方法). 怎么实现继承? 我们的JavaScript比较特别了, ...
- JS--我发现,原来你是这样的JS:面向对象编程OOP[2]--(创建你的那个对象吧)
一.介绍 我们继续面向对象吧,这次是面向对象编程的第二篇,主要是讲创建对象的模式,希望大家能从博客中学到东西. 时间过得很快,还是不断的学习吧,为了自己的目标. 二.创建对象 1.前面的创建对象方式 ...
- javascript模块化编程库require.js的用法
随着javascript的兴起,越来越多的公司开始将JS模块化,以增加开发的效率和减少重复编写代码的.更是为了能更加容易的维护日后的代码,因为现在的随着人们对交互效果的越来越强烈的需求,我们的JS代码 ...
- captcha.js一个生成验证码的插件,使用js和canvas生成
一.captcha`captcha.js`是一个生成验证码的插件,使用js和canvas生成的,确保后端服务被暴力攻击,简单判断人机以及系统的安全性,体积小,功能多,支持配置. 验证码插件内容,包含1 ...
- JS--我发现,原来你是这样的JS:面向对象编程OOP[1]--(理解对象和对象属性类型)
一.介绍 老铁们,这次是JS的面向对象的编程OOP(虽然我没有对象,心累啊,但是可以自己创建啊,哈哈). JS高程里第六章的内容,这章内容在我看来是JS中很难理解的一部分.所以分成三篇博客来逐个理清. ...
随机推荐
- address-already in use 以及查看端口
https://stackoverflow.com/questions/19071512/socket-error-errno-48-address-already-in-use
- mysql 1005 错误
建立外键的时候两个 表的相对应的 类型不一致!
- 【转载】java连接MYSQL
原文出自 http://qq163230530.blog.163.com/blog/static/4289250620081186262719/ 这篇文章主要以MySQL为例讲下Java如何连接到数据 ...
- 基于python的七种经典排序算法(转)
一.排序的基本概念和分类 所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作.排序算法,就是如何使得记录按照要求排列的方法. 排序的稳定性:经过某种排序后,如果两个 ...
- Linux 超级守护进程 xinetd
在Linux中,守护进程有两种方式,一种是svsy方式,一种是xinetd方式(超级守护进程). 每个守护进程都会有一个脚本,可以理解成工作配置文件,守护进程的脚本需要放在指定位置,独立启动守护进程: ...
- Chai.js断言库API中文文档【转载】
基于chai.js官方API文档翻译.仅列出BDD风格的expect/should API.TDD风格的Assert API由于不打算使用,暂时不放,后续可能会更新. BDD expect和shoul ...
- Windows10环境vagrant+VirtualBox虚拟机无法创建私有网络的解决方案。
报错信息 ==> default: Clearing any previously set network interfaces...There was an error while execu ...
- Kotlin——初级篇(四):控制语句详解
在前面 的章节中讲解了Kotlin语言中的数据类型.变量与常量的定义.不了解请参见前面的内容: Kotlin--初级篇(三):数据类型详解. Kotlin--初级篇(二)常量.变量.注释. 下面详细为 ...
- COGS 693. [SDOI2005]Antiprime数 唯一分解定理逆用
693. Antiprime数 ★★ 输入文件:antip.in 输出文件:antip.out 简单对比 时间限制:1 s 内存限制:128 MB 如果一个自然数n(n>=1), ...
- iframe脸面的页面和父页面之间的交互方法
1.iframe父页面修改iframe中的页面的信息 var obj = document.getElementById("iframeId").contentWindow; ...