js构造函数和属性的问题

js构造函数和属性的问题,第1张

简单,我来说一下吧,

var

obj=new

Object()是一个空对象,等同于var

obj={},注意,这里只是说,他们的功能一样,实际上alert(new

Object()≠{})//false

这个对象没有任何方法和属性,因此,你可以为其添加任何的属性和方法。

比如:obj.name='你好';alert(obj.name)

既然使用了构造函数那你就应该用面向对象的思维模式,构造函数构造出的对象已经约定了该对象的属性和方法,无论是从便于阅读还是后期维护性上都比直接在table对象上添加方法要好的多。而且如果该对象还有父类,而你直接添加属性和方法会直接覆盖同名的父类属性和方法从而发生各种问题

function 函数名 () {

this.属性名 = ""

this.方法名 = function (){

函数体

}

}

var p = new 函数名 ()

p.方法名()//可调用此方法

//注意:在构造函数里所有的属性和方法皆用this.来书写

构造函数必须通过new关键字来创建,如:

var p = new 函数名("值一","值二","值三")

注意:括号中的值可以是常量,也可以是变量

构造函数与普通函数之间就调用的方式不同

构造函数通过new关键字来调用,普通函数则可以直接调用

普通函数是遵循小驼峰命名法,即第一个单词首字母小写,其余单词首字母大写;

构造函数则是所有单词首字母都为大写

1) 首先要创建一个对象,对象类型就是这个构造函数的名字

2) 最后会把创建好的这个对象自动返回

3) 注意:var p = new 函数名()此时的p就已经是一个对象了

4) 调用通过构造函数创建好的对象中的某个属性,格式为: p.属性名或 p.方法名()

1) 在构造函数中,this指代的就是创建的这个对象

这也是为什么在构造函数中要使用this.属性名来书写了

2) 在对象中,属性和方法的书写格式为: 属性名 : "值"或 方法名 : function (){}//属性与属性或方法与方法之间

都以,隔开

在构造函数中,书写格式为: this.属性名 = "值"或 this.方法名 = function (){}//每个属性之间以;隔开


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11502515.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存