发布网友 发布时间:2024-09-05 23:11
共1个回答
热心网友 时间:2024-10-04 07:42
一.工厂函数(了解):用于创建对象的函数工厂函数是一个最后返回值是对象的函数,但它既不是类,也不是构造函数。在JavaScript中,任何函数都可以返回一个对象。但当函数没有使用new关键字时,那它便是一个工厂函数。
二.构造函数使用new调用一个函数,构造函数作用与工厂函数一致,都是用来创建对象的。但是代码更加简洁。
三.构造函数new工作原理(1)创建空对象
(2)this指向这个对象
(3)对象赋值
(4)返回这个对象
四.构造函数new在使用时需要注意的地方构造函数首字母一般大写,为了提醒调用者不要忘记new关键字
如果在构造函数内部,手动returnreturn值类型:无效,还是返回new创建的对象
return引用类型:有效,会覆盖new创建的对象
五.代码演示functionPerson(name,age,sex){//(1)创建空对象//(2)this指向这个对象,this={}//(3)对象赋值this.name=namethis.age=agethis.sex=sex//(4)返回这个对象}//调用者Aletp1=newPerson('张三',23,'男')console.log(p1)//调用者Bletp2=newPerson('王五',45,'男')console.log(p2)六.总结new关键字它创建一个新对象。这个对象的类型就是object。
它将这个新对象的内部不可访问的[[prototype]](即proto)属性设置为构造函数的外部可访问原型对象(每个函数对象都会自动具有prototype属性)
它使this变量指向新创建的对象。
每当this提及时,它都会使用新创建的对象执行构造函数。
注意:构造函数是指new关键字后面的函数,如,newConstructorFunction(arg1,arg2)
七.实现一个newnew运算符创建一个用户定义的对象类型的实例或具有构造函数的内置对象的实例,new关键字会进行如下的操作:
1.创建一个空的简单JavaScript对象(即{});
2.链接该对象(即设置该对象的构造函数)到另一个对象;(通俗理解就是新对象隐式原型proto链接到构造函数显式原型prototype上)
3.将步骤1新创建的对象作为this的上下文;(实际是执行了构造函数,并将构造函数作用域指向新对象)
4.如果该函数没有返回对象,则返回this。(实际是返回一个空对象,newObject()就是返回一个空对象{})
八.Javascript关键字列表:(拓展)breakdeletefunctionreturntypeof
casedoifswitchvar
catchelseinthisvoid
continuefalseinstanceofthrowwhile
debuggerfinallylet``newtruewith
defaultfornulltry``const
热心网友 时间:2024-10-04 07:51
一.工厂函数(了解):用于创建对象的函数工厂函数是一个最后返回值是对象的函数,但它既不是类,也不是构造函数。在JavaScript中,任何函数都可以返回一个对象。但当函数没有使用new关键字时,那它便是一个工厂函数。
二.构造函数使用new调用一个函数,构造函数作用与工厂函数一致,都是用来创建对象的。但是代码更加简洁。
三.构造函数new工作原理(1)创建空对象
(2)this指向这个对象
(3)对象赋值
(4)返回这个对象
四.构造函数new在使用时需要注意的地方构造函数首字母一般大写,为了提醒调用者不要忘记new关键字
如果在构造函数内部,手动returnreturn值类型:无效,还是返回new创建的对象
return引用类型:有效,会覆盖new创建的对象
五.代码演示functionPerson(name,age,sex){//(1)创建空对象//(2)this指向这个对象,this={}//(3)对象赋值this.name=namethis.age=agethis.sex=sex//(4)返回这个对象}//调用者Aletp1=newPerson('张三',23,'男')console.log(p1)//调用者Bletp2=newPerson('王五',45,'男')console.log(p2)六.总结new关键字它创建一个新对象。这个对象的类型就是object。
它将这个新对象的内部不可访问的[[prototype]](即proto)属性设置为构造函数的外部可访问原型对象(每个函数对象都会自动具有prototype属性)
它使this变量指向新创建的对象。
每当this提及时,它都会使用新创建的对象执行构造函数。
注意:构造函数是指new关键字后面的函数,如,newConstructorFunction(arg1,arg2)
七.实现一个newnew运算符创建一个用户定义的对象类型的实例或具有构造函数的内置对象的实例,new关键字会进行如下的操作:
1.创建一个空的简单JavaScript对象(即{});
2.链接该对象(即设置该对象的构造函数)到另一个对象;(通俗理解就是新对象隐式原型proto链接到构造函数显式原型prototype上)
3.将步骤1新创建的对象作为this的上下文;(实际是执行了构造函数,并将构造函数作用域指向新对象)
4.如果该函数没有返回对象,则返回this。(实际是返回一个空对象,newObject()就是返回一个空对象{})
八.Javascript关键字列表:(拓展)breakdeletefunctionreturntypeof
casedoifswitchvar
catchelseinthisvoid
continuefalseinstanceofthrowwhile
debuggerfinallylet``newtruewith
defaultfornulltry``const