JavaScript基础——自定义对象

简介: JavaScript基础——自定义对象

数据类型

基本数据类型(栈内存):number、string 、null、Boolean、Underfind


引用类型(堆内存): object


创建对象的语法:创建一个obj的对象

1.var obj=new object();     //构造函数


2.var obj={};  //使用对象字面量


3.var fun3=function([形参1、形参n]){


                //函数体


};


参数

调用函数时,解析器不会检查实参的类型;调用函数时,解析器也不会检查实参的数量。


多余的实参不参与运算


如果实参的数量少于形参的数量,则没有对应实参的形参将是underfind


js中作用域分 两种

1、全局作用域

        写在script标签中,页面打开时创建,页面关闭时销毁


        全局作用域有一个window对象,


        创建的变量都是Window对象的属性

        创建的函数都是window对象的方法


2、函数作用域

        调用函数时创建函数作用域,函数执行完毕以后,作用域销毁


        在函数中,不使用var声明的变量都会成为全局变量


声明提前

1、变量的声明提前

       使用关键字var声明的变量,会在所有的代码执行之前被声明,不会赋值


       执行到该行才会赋值。


2、 函数的声明提前

     使用函数声明形式创建的函数 function 函数名 (){}


     它会在所有的代码执行之前就被创建,所以我们可以在函数声明前来调用函数


this指针

解析器在调用函数每次都会向函数内部传递进一个隐含的参数这个隐含的参数就是this,根据函数的调用方式的不同,this会指向不同的对象


1.以函数的形式调用时,this永远都是 window


2.以方法的形式调用时,this就是调用方法的那个对象


原型对象prototype

我们所创建的每一个函数,解析器都会向函数中添加一个属性prototype。这个属性对应着一个对象,这个对象就是我们所谓的原型对象


原型对象就是一个公共性的区域,所有同一类的对象都可以访问这个原型对象


我们可以将对象中的公共性的内容,统一设置在原型对象中


创建构造函数时,可以将对象公有的属性和方法,统一添加到构造函数 的原型对象中


function MyClass(name,age,gender){
  this.name=name;
  this.age=age;
  this.gender=gender;
  //原型函数sayHello写在外边
}
//向MyClass的原型中添加属性a,函数sayHello
    MyClass.prototype.a="123";
    MyClass.prototype.sayHello = function(){
     alert("hello大家好我是"+this.name);
    };
var mc=new MyClass("猪八家",18,"男");
mc.sayHello();
使用in检查对象中是否含有某个属性,原型如果有这个属性也返回true
       console.log("age" in mc);
使用hasOwnProperty()来检查对象自身含有该属性。只有当对象自身含有属性是才返回true
       console.log(mc.hasOwnProperty("age"));

相关文章
|
JavaScript 前端开发
如何在 JavaScript 中使用 __proto__ 实现对象的继承?
使用`__proto__`实现对象继承时需要注意原型链的完整性和属性方法的正确继承,避免出现意外的行为和错误。同时,在现代JavaScript中,也可以使用`class`和`extends`关键字来实现更简洁和直观的继承语法,但理解基于`__proto__`的继承方式对于深入理解JavaScript的面向对象编程和原型链机制仍然具有重要意义。
|
Web App开发 JavaScript 前端开发
如何确保 Math 对象的方法在不同的 JavaScript 环境中具有一致的精度?
【10月更文挑战第29天】通过遵循标准和最佳实践、采用固定精度计算、进行全面的测试与验证、避免隐式类型转换以及持续关注和更新等方法,可以在很大程度上确保Math对象的方法在不同的JavaScript环境中具有一致的精度,从而提高代码的可靠性和可移植性。
|
11月前
|
编解码 JavaScript 前端开发
【Java进阶】详解JavaScript的BOM(浏览器对象模型)
总的来说,BOM提供了一种方式来与浏览器进行交互。通过BOM,你可以操作窗口、获取URL、操作历史、访问HTML文档、获取浏览器信息和屏幕信息等。虽然BOM并没有正式的标准,但大多数现代浏览器都实现了相似的功能,因此,你可以放心地在你的JavaScript代码中使用BOM。
337 23
|
JSON 前端开发 JavaScript
JavaScript中对象的数据拷贝
本文介绍了JavaScript中对象数据拷贝的问题及解决方案。作者首先解释了对象赋值时地址共享导致的值同步变化现象,随后提供了五种解决方法:手动复制、`Object.assign`、扩展运算符、`JSON.stringify`与`JSON.parse`组合以及自定义深拷贝函数。每种方法都有其适用场景和局限性,文章最后鼓励读者关注作者以获取更多前端知识分享。
253 1
JavaScript中对象的数据拷贝
|
JavaScript 前端开发 图形学
JavaScript 中 Math 对象常用方法
【10月更文挑战第29天】JavaScript中的Math对象提供了丰富多样的数学方法,涵盖了基本数学运算、幂运算、开方、随机数生成、极值获取以及三角函数等多个方面,为各种数学相关的计算和处理提供了强大的支持,是JavaScript编程中不可或缺的一部分。
|
移动开发 JavaScript 前端开发
原生js如何获取dom元素的自定义属性
原生js如何获取dom元素的自定义属性
611 4
|
存储 JavaScript 前端开发
JavaScript 对象的概念
JavaScript 对象的概念
156 4
|
存储 JavaScript 前端开发
js中函数、方法、对象的区别
js中函数、方法、对象的区别
336 2
|
缓存 JavaScript 前端开发
JavaScript中数组、对象等循环遍历的常用方法介绍(二)
JavaScript中数组、对象等循环遍历的常用方法介绍(二)
237 1