首页 / JAVASCRIPT / JS面向对象
JS面向对象
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了JS面向对象,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2159字,纯文字阅读大概需要4分钟。
内容图文
![JS面向对象](/upload/InfoBanner/zyjiaocheng/1100/916dab26f39f42b694051c99c113b414.jpg)
1.概念
面向对象不是一种语法,是一种编程的思想。
2.创建对象
var obj = {}; var obj = new Object();
Object是一个系统提供的构造函数,这个构造函数专门用来创建对象使用的。
空对象不要紧,知道怎么往对象中添加属性就行
3.工厂函数
定义一个函数,调用函数,传入参数就可以得到对象。
function createObj(name,age,sex){ var obj = new Object(); obj.name = name; obj.age = age; obj.sex = sex; return obj; } //传入参数就可以获得对象 var obj1 = createObj("张三",12,"男"); var obj2 = createObj("李四",13,"女"); var obj3 = createObj("王五",11,"女")
这种批量创建对象的函数,叫做工厂函数。
优点:可以同时创建多个对象
缺点:创建出来的类型,都是object类型的。无法精确看到对象类型
解决方案:自定义构造函数。其实相当于自己写一个函数,专门用来new对象。
4.自定义构造函数
根据固定的模板,创建一个对象,创建的对象有构造函数规定的属性和方法。
潜规则:构造函数的首字母需要大写
1.创建了一个新对象
2.this指向了这个新对象(新对象就有了属性,创建了属性)
3.执行构造函数,也就是调用了这个函数(给对象添加属性和方法,给属性和方法赋值)
4.返回这个新对象
function Person(name,age,sex){ this.name = name; this.age = age; this.sex = sex; } var obj1 = new Person("张三",12,"男"); var obj1 = new Person("李四",13,"女"); var obj1 = new Person("王五",11,"女");
构造函数的作用:
给对象添加属性和方法。
构造函数注意事项:
1.构造函数天生就是用来创建对象的,所以必须和new配合使用,否则就不具备创建对象的能力
2.构造函数内部不能有return关键字,因为构造函数会自动返回对象。如果返回基本数据类型,和不加效果一样,如果返回复杂数据类型,构造函数就没意义了。
3.如果new的时候,不需要参数,那么下括号可以省略
缺点
不同的对象应该由相同的方法,但是方法在内存中占用了多个空间-浪费
使用原型可以完美解决这个问题。
5.原型
原型对象:在声明了一个函数之后,浏览器会自动按照一定的规则创建一个对象,通过函数的prototype可以访问到这个对象,这个对象就叫做原型对象。
在声明了一个函数后,这个构造函数(声明了的函数)中会有一个属性prototype,这个属性指向的就是这个构造函数(声明了的函数)对应的原型对象;原型对象中有一个属性constructor,这个属性指向的是这个构造函数(声明了的函数)
var obj = { // name:"张三", // age:12 // } // console.log(obj);
1.任何一个对象,天生自带一个属性:__proto__ , 这个东西是一个对象,原型/原型对象;
console.log(obj.__proto__); obj.__proto__.sex = ‘美女‘; console.log(obj.__proto__);
function Person(){ } var p = new Person(); Object.prototype.name = ‘李四‘; Object.prototype.eat = function(){ // console.log("吃"); } console.log(p); // 最小的对象 console.log(p.__proto__); console.log(p.__proto__.__proto__); console.log(p.__proto__.__proto__.constructor); console.log(p.__proto__.__proto__.__proto__);
![技术分享图片](/upload/getfiles/default/2022/10/30/20221030043831603.jpg)
原文:https://www.cnblogs.com/bing-guo/p/13295811.html
内容总结
以上是互联网集市为您收集整理的JS面向对象全部内容,希望文章能够帮你解决JS面向对象所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。