JavaScript24_旧类与new运算符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript24_旧类与new运算符相关的知识,希望对你有一定的参考价值。

14、旧类

早期JS中,直接通过函数来定义类

  • 一个函数如果直接调用 xxx() 那么这个函数就是一个普通函数
  • 一个函数如果通过new调用 new xxx() 那么这个函数就是一个够早函数
  • ​ 等价于:
    ​ class Person
<script>
var Person = (function ()
function Person (name,age)
//在构造函数中,this表示新建的对象
this.name = name
this.age = age

// this.sayHello = function()
// console.log(this.name)
//


//向原型中添加属性(方法)
Person.prototype.sayHello = function()
console.log(this.name)


//静态方法
Person.staticProperty = xxx
//静态方法
Person.staticMethod = function()

return Person
)()

const p = new Person(孙悟空,18)
console.log(p)

var Animal = (function()
function Animal()


return Animal
)()

var Cat = (function()
function Cat()



//继承Animal
Cat.prototype = new Animal()

return Cat
)()

var cat = new Cat()
console.log(cat)
</script>

15、new运算符

new运算符是创建对象时要使用的运算符

  1. 创建一个普通的JS对象(Object对象 ), 为了方便,称其为新对象
  2. 将构造函数的prototype属性设置为新对象的原型
  3. 使用实参来执行构造函数,并且将新对象设置为函数中的this
  4. 如果构造函数返回的是一个非原始值,则该值会作为new运算的返回值返回(千万不要这么做) 如果构造函数的返回值是一个原始值或者没有指定返回值,则新的对象将会作为返回值返回 通常不会为构造函数指定返回值
<script>
function MyClass()
var newInstance =
newInstance.__proto_ = MyClass.prototype


var mc = new MyClass()
console.log(mc)

class Person
constructor()




new Person()
</script>

16、总结

面向对象本质就是,编写代码时所有的操作都是通过对象来进行的。 面向对象的编程的步骤: 1. 找对象 2. 搞对象

学习对象: 1. 明确这个对象代表什么,有什么用
2. 如何获取到这个对象 3. 如何使用这个对象(对象中的属性和方法)

对象的分类: 内建对象 - 由ES标准所定义的对象 - 比如 Object Function String Number ....

宿主对象 - 由浏览器提供的对象 - BOM、DOM

自定义对象 - 由开发人员自己创建的对象

以上是关于JavaScript24_旧类与new运算符的主要内容,如果未能解决你的问题,请参考以下文章

详谈Javascript类与继承

new运算符详解(JavaScript)

javascript中new运算符

python 旧类中使用property特性的方法

面向对象:类与运算符

装饰器、装饰器类与类装饰器(三)