Object Oriented Programming
程序员文章站
2022-04-06 15:06:25
...
面向对象简介
**面向对象编程:oop**
对象 class es5 没有 class 怪异的 非正统
函数来模拟对象------>面向对象编程
基于实现Object 来完成的
Array Date Faunction RegExp -->Object
父类:超类 基类
子类:派生类
对象:
属性: 变量
方法: 函数
声明对象”
{} 代表空对象
new Object() 创建对象
函数:
_proto_ 属性 对象(隐式原型对象)
prototype 属性 对象(显示原型对象)
案例:
var s=new Object() // 创建一个自定义对象
//属性
s.no='1000'
s.age='20'
s.name='jack'
//方法
s.test=function(){
console.log('在考试中。。。。)
}
s.run=function(){
console.log('在奔跑。。。)
}
//输出姓名
console.log(a.name)
//调用方法
s.test()
s.run()
console.log(s)
console.log(s._proto_)
console.log(Object.prototype)
//在Es5中,this指作用域对象 指调用者
//定义一个猫对象
var cat=new Object()
//添加属性和方法
cat.name='喵喵‘
cat.age='2'
cat.catchMouse=function(){
console.log(this.name+'抓到一只大老鼠。。。。。)
}
console.log(cat.name)
cat.catchMouse()
工厂模式
优点:能够批量创建对象
缺点:会为每一个对象添加方法,会造成内存浪费
案例
//工厂模式
function createStudent(no,name,grade){
//创建一个对象
var obj=new Object()
//添加属性
obj.no=no
obj.name=name
obj.age=age
obl.grade=grade
//添加方法
obj.test=function(){
console.log(this.name+'在考试。。。。)
}
return obj
}
var s1=createSudent('1000','李四',20,'一年级')
var s2=createSudent('1001','王五',30,’二年级')
s1.test()
s2.test()
console.log(s1)
console.log(s2)
console.log(s1.test==s2.test)//false
上一篇: Python创建字典的方式
推荐阅读
-
JavaScript 判断某个对象是Object还是一个Array
-
Domain Object贫血vs富血(DDD)和spring roo到ruby的扯淡
-
Domain Object贫血vs富血(DDD)和spring roo到ruby的扯淡
-
Error in created hook: “TypeError: Object(...) is not a function“
-
file-loader打包图片文件时路径错误输出为[object-module]的解决方法
-
TypeError: 'function' object is not subscriptable
-
Using $this when not in object context错误信息
-
[HOOLOO] zizaco/entrust 5.2.x-dev Class name must be a valid object or a string,hooloozizaco
-
关于PHP中Object对象的笔记分享_PHP
-
Meta Programming 主要解决什么了问题?