JS面向对象

痴心易碎 提交于 2019-11-28 05:49:25

万物皆对象

我们不缺‘对象’缺对象

知识点1

三种方法创建对象

1.第一种创建对象 New

var obj = new Object();

obj.name = 'mingze';
obj.age = 20;
obj.sex = 0;
obj.mingze = function(){
     return this.age  
}
obj.mingze()  // 20

2.1.第二种创建对象   通过隐式

var obj = {};
obj.name = 'MZ';
obj.age = 20
obj.Fn = function(){
    return this.name
}
obj.Fn()   //MZ

2.2 创建对象  简单字面量

var obj = {
    name:'mingze',
    like:'computed',
    Fn:function(){
        return this.like
    }
};
obj.Fn()  //computed

注意:最后一个不要加逗号

如果key有空格和特殊符号 保留字 那么value 要加引号。!!!!

 

知识点2

函数表达式 和 函数声明的区别

function add(){}   // 函数声明

var addl = function(){}   // 函数表达式

--函数声明预加载先 可以在函数前调用函数

--函数表达式 预加载慢,不能在函数前面调用函数

---------------------------------

构造函数

function Mingze(age,name){
    this.name = nam;
    this.age = age;
    this.todo = function(){
        console.log(this.name)  
    }
}
var a = new Mingze(20,'mingze')
a.todo()

 注意:首字母大写 

所有的引用类型都有构造函数
var a = {} 其实是一个 var a = new Object()的语法糖
var a = [] 其实是一个 var a = new Array()的语法糖

构造函数中的this 指的是的实例化的那个对象 不是指的Person

ar aa = new Person('shaozhu',22); //aa.age

var bb = new Person('cole',23); //bb.age

优点:同一个方法 可以实例化多个然后去使用 构造函数可以通用!

返回一个对象

function person(name,age){
var obj = new Object();
obj.name = name;
obj.age = age;
return obj;//返回对象
}

var a1 = person('qqq',23);//这种方法就不用new 了 里面new了

a1.name

'qqq'

上面这个模式称为 工厂模式

 

普通模式 就是日常的函数

以后写插件 公用的 构造器用的特别的多!!

构造函数都要通过new 来调用的

 

总结:构造函数与普通函数的区别

1.this 指向

--构造函数的this 指向创建对象的实例上 !!!

--普通函数 指向调用者

2.调用方式

NEW new

3.命名方式
构造函数首字母大写!!

----------------------------------------------

通过面向对象来写功能

注意点 :jq 选择器 带上父元素 权重大 不会出问题 (别人可能也写了这个类 )

 

嵌套字面量 好东西!!

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!