js面向对象类和对象
编程技术  /  houtizong 发布于 3年前   66
接触js已经有几个月了,但是对js的面向对象的一些概念根本就是模糊的,js是一种面向对象的语言 但又不像java一样有class,js不是严格的面向对象语言 ,js在java web开发的地位和java不相上下 ,其中web的数据的反馈现在主流的使用json,json的语法和js的类和属性的创建相似
下面介绍一些js的类和对象的创建的技术
一:类和对象的调用
var obj={ 'id':2, 'name':'王珂', 'sex':'男' }; alert(obj.name+" "+obj.id);
二:函数创建对象 this指当前类的属性与java相似(原型模式)
//简单对象的创建 function myObj(){ this.id=1; this.name="王文";}var b =new myObj();//alert(" 对象"+b.id+" "+b.name);
三:构造函数创建类和对象(构造函数模式)
//根据类的属性创建对象function createPerson(id,name,sex){ this.id=id; this.name=name; this.sex=sex; this.syName=function(){ // alert("函数的属性是:"+this.name); }}//alert(obj.id+""+obj.name+""+obj.sex);//创建对象var person=new createPerson(obj.id,obj.name,obj.sex);//alert("对象的结果是:"+person.id+""+person.name+""+person.sex);//对象调用类中的匿名函数person.syName();
四:两次输出的结果都是一样
function Person(name,age,job){ this.name = name; this.age=age; this.job = job; this.sayName = function(){ alert(this.name); }; } Person("ansel","30","male"); Person("tanya","30","female"); window.sayName(); window.sayName();
发现两次弹出的都是ansel,这是因为不用new的话,就不是一个person的实例,而仅仅在执行函数。而在全局作用域调用一个函数时this总是指向Global对象。而Global对象在浏览器中就是window对象。
请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!
技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成
网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];
文章归档
文章标签
友情链接