面向对象-javascript中这两种对象属性有什么区别?

问题描述

javascript中这两种对象属性有什么区别?

第一种:function aaa(){}
aaa.a=111;

第二种:function bbb(){}
bbb.prototype.b=111;

我在csdn问过第一种,大部分人说属于面向对象的范畴。
但是我看了几篇js面向对象博客,都是用第二种原型的方式;

所以想知道这两种给对象添加属性的行为,在实际应用中有什么区别?

解决方案

 如果把aaa,bbb作为方法来看,这两者没有区别。
 如果把aaa,bbb作为类来看,那有区别。
 aaa.a是私有属性,var obj = new aaa();实例化后,是无法访问到a属性的
 bbb.prototype.b是公有属性,var obj = new bbb();实例化后,是无法访问到b属性的

解决方案二:

第一种相当于oo语言类的静态属性,第二种是类实例的属性

时间: 2024-09-12 08:11:31

面向对象-javascript中这两种对象属性有什么区别?的相关文章

javaScript中定义类或对象的五种方式总结_javascript技巧

第一种方式: 工厂方法 能创建并返回特定类型的对象的工厂函数(factory function). function createCar(sColor){ var oTempCar = new Object; oTempCar.color = sColor; oTempCar.showColor = function (){ alert(this.color); }; return oTempCar; } var oCar1 = createCar(); var oCar2 = createCa

freemarker中比较一个list中的两个对象的属性是否相等

问题描述 freemarker中比较一个list中的两个对象的属性是否相等 freemarker我从后台map里放了个list,然后想遍历list的时候对list中两个索引中对象的值做比较怎么弄,代码如下我想比较索引两个下标中对象的carbrandname是否相等,根据结果动态生成页面 <#list carList as obj> ${obj_index}.${obj.carbrandname == obj.carbrandname} <#if (${obj_index.obj.carb

java-如何在LinkedList对象中加入两种比较器?

问题描述 如何在LinkedList对象中加入两种比较器? 用LinkedList对象list存储扑克牌并排序,写了一个牌值比较器RankComparator和 一个花色比较器SuitComparator, 还有写了枚举的CardRank和CardSuit,并对不同的 花色和牌值都赋了不同的值,再用Collection.sort(list,new RankComparator())进行牌值的排序,现在我想再加一个花色的排序(就是list中既对牌值排序,又对花色排序),请问该怎么写呢?谢谢各位大虾

Javascript中的几种继承方式对比分析_基础知识

开篇从'严格'意义上说,javascript并不是一门真正的面向对象语言.这种说法原因一般都是觉得javascript作为一门弱类型语言与类似java或c#之类的强型语言的继承方式有很大的区别,因而默认它就是非主流的面向对象方式,甚至竟有很多书将其描述为'非完全面向对象'语言.其实个人觉得,什么方式并不重要,重要的是是否具有面向对象的思想,说javascript不是面向对象语言的,往往都可能没有深入研究过javascript的继承方式,故特撰此文以供交流. 为何需要利用javascript实现继

JavaScript中几个重要的属性

 this this表示当前对象,如果在全局作用范围内使用this,则指代当前页面对象window: 如果在函数中使用this,则this指代什么是根据运行时此函数在什么对象上被调用. 我们还可以使用apply和call两个全局方法来改变函数中this的具体指向. 先看一个在全局作用范围内使用this的例子: 代码如下: <script type=> console.log( === window); console.log(window.alert === .alert); console.

Javascript中的Array数组对象详谈

 这篇文章主要介绍了Javascript中的Array数组对象,需要的朋友可以参考下 首先数组的定义以及初始化的方法:  var myArray = new Array(1,3.1415,"love"); //这里注意myArray数组中的元素不只是同一种数据类型的元素,可以有整形,有浮点型,有字符串等等都可以.这里充分展示了javascript作为一种语言对数据类型的弱化,语言更加的随意化,简便化.就行定义对象的时候用var一样.  在此介绍的有限,同时有一些我没有给出结果,希望大家

JavaScript中的三种弹出对话框

        学习过js的小伙伴会发现,我们在一些实例中用到了alert()方法.prompt()方法.prompt()方法,他们都是在屏幕上弹出一个对话框,并且在上面显示括号内的内容,使用这种方法使得页面的交互性更精彩,实际上我们经常会在进行网页浏览时简单这种类型的对话框,在用户与应用程序进行双向交流时,经常要用到对话框.avascript的三种对话框是通过调用window对象的三个方法alert(),confirm()和prompt()来获得,可以利用这些对话框来完成js的输入和输出,实现

指针-Javascript中通过点操作符定义属性和字面量形式定义的区别

问题描述 Javascript中通过点操作符定义属性和字面量形式定义的区别 我已经有一种这样的困惑:第一种:function Person(){};Person.name = ""liang"";Person.age = 22 ;Person.sayName = function(){alert(this.name)}alert(Person.prototype.constructor == Person) ; // true在以上这个代码中,我创建了一个构造函数P

动态加载JavaScript文件的两种方法_javascript技巧

这篇文章主要为大家详细介绍了动态加载JavaScript文件的两种方法,感兴趣的小伙伴们可以参考一下 第一种便是利用ajax方式,把script文件代码从背景加载到前台,而后对加载到的内容经过eval()实施代码.第二种是,动静创建一个script标签,配置其src属性,经过把script标签插入到页面head来加载js,相当于正在head中写了一个<script src="..."></script>,只可是这个script标签是用js动静创建的 比喻说是我们