javascript和面向对象,JS声明的对象什么时候会被销毁

本文深入探讨了JavaScript中的对象创建,特别是通过构造函数和原型链。`new`关键字的作用是创建一个空对象,将其`__proto__`指向构造函数的`prototype`,并以新对象为上下文调用构造函数。JS中的对象可以通过原型链共享属性和方法,而非复制。此外,文章还提到了JavaScript的垃圾回收机制,当对象没有引用时,会被自动销毁。良好的实践是显式地将对象引用设置为`null`来强制垃圾回收。最后,文章介绍了JavaScript中的换行符、DOM操作、弹出框、escape和unescape函数以及闭包的概念。
摘要由CSDN通过智能技术生成

// ************************** JS 对象 构造函数的原型类型 new 空对象的 -原型 **********************************//
function Person(name, age) {
this.name = name;
this.age = age;
}

Person.prototype.greet = function() {
console.log("Hello " + this.name);
};

var me = new Person(“Valentino”);
me.greet();

// Output: “Hello Valentino”
注意,使用new关键字,被称为“构造函数调用”,new 干了三件事情

创建一个空对象
将空对象的__proto__指向构造函数的prototype
使用空对象作为上下文的调用构造函数function Person(name, age) {
this.name = name;
this.age = age;
}

根据上面描述的,new Person(“Valentino”) 做了:

创建一个空对象:var obj = {}
将空对象的__proto__指向构造函数的 prototype:obj.proto = Person().prototype
使用空对象作为上下文调用构造函数: Person.call(obj)

//***************************** 检查原型链 ********************************************//
检查JS对象之间的原型链接有很多种方法。 例如,Object.getPrototypeOf是一个返回任何给定对象原型的方法。 考虑以下代码:

//***************************** 总结 ********************************************//
JS中的几乎所有东西都是一个对象。 从字面上看。 JS对象是键和值的容器,也可能包含函数。 Object是JS中的基本构建块:因此可以从共同的祖先开始创建其他自定义对象。 然后咱们可以通过语言的内在特征将对象链接在一起:原型系统。

从公共对象开始,可以创建共享原始“父”的相同属性和方法的其他对象。 但是它的工作方式不是通过将方法和属性复制到每个孩子,就像OOP语言那样。 在JS中,每个派生对象都保持与父对象的连接。 使用Object.create或使用所谓的构造函数创建新的自定义对象。 与new关键字配对,构造函数类似于模仿传统的OOP(面向对象的程序设计)的类。

//********************************** 三、JS对象废除 ******************************************************//

对于javascript 语言,其拥有 垃圾回收机制(无用存储单元收集程序),意味着我们可以不必专门销毁对象来释放内存。
  如果再没有对对象的引用时,**当运行垃圾回收机制(无用存储单元收集程序)**时,即可销毁所有的对象。
  但作为一个良好的习惯,把对象的所有引用都设置为 null,可以强制性地废除对象。
  例如:hero=null;当对象变量 hero 设置为 null 后,对第一个创建的对象的引用就不存在了。
  这意味着下次运行无用存储单元收集程序时,该对象将被销毁。

注意:废除对象的所有引用时要当心。如果一个对象有两个或更多引用,则要正确废除该对象,必须将其所有引用都设置为 null。

如何将JavaScript代码分解成几行吗?
\ 转义符 把特殊符号显示出来
\n 换行符
在字符串语句中可以通过在第一行末尾使用反斜杠“\”来完成
例:document.write(“This is \a program”);

var newP = document.createElement(“p”);
var textNode = document.createTextNode("this is a new text node ");
newP.appendChild(textNode);
document.getElementById(“firstP”).app

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值