JavaScript面试题 -js判断数组和对象?如何自定义构造函数?创建对象的方法?

本文探讨了JavaScript中如何判断数组和对象,包括使用Array.isArray()、检查constructor属性的方法。同时,介绍了自定义构造函数的概念,以及创建对象的四种方式:字面量、new操作符结合Object()、构造函数以及Object.create()。
摘要由CSDN通过智能技术生成

判断数组和对象

Array.isArray(isArr)*
  • isArr 需要判断的变量
  • 返回结果为布尔值,true 表示是数组,否则就不是。
variate instanceof constructor
  • variate 需要判断的变量
  • constructor 构造函数(Array、Object…)
  • 返回结果为布尔值,true 表示是 constructor 下的实例,否则就不是。
variate.constructor == constructor
  • variate 需要判断的变量
  • constructor 构造函数
  • variate.constructor 返回的是 variate 对应的构造函数

自定义构造函数

function Person(name, age, sex) {
    this.uname = name;
    this.age = age;
    this.sex = sex;
}
// 通过原型(prototype)定义方法
Presion.prototype.say = function () {
    console.log(this)
}

函数的 prototype 属性,是一个指针指向当前函数的原型对象;

原型对象下的属性和方法可以被实例化对象所共享。

原型对象有一个 constructor 属性,该属性指向原型对象的构造函数。

Person.prototype.constructor

创建对象的方法

通过字面量的方式
let obj = { uname: '小小' }
通过 new 操作符 + Object() 创建对象
let obj = new Object()
通过构造函数
// 创建构造函数
function Person(naem, age, sex) {
    this.name = naem
    this.age = age
    this.sex = sex
    this.say = function () {
        alert(this.name)
    }
}
// 创建对象
let person1 = new Person('小小', 19, 0)
通过 Object.create()

Object.create() 以指定的对象为原型创建新的对象

var obj = {name: "妲己", gender: 'girl',  e}
var newObj = {}
// 以 obj 为原型创建了一个新的对象,且添加了新的属性
newObj = Object.create(obj, {
    age: {
        // 设置属性值
        value: 1000,
        // 设置属性可修改,默认不可修改(false)
        writable: true,
        // 设置当前属性可删除(可配置),默认不可删除
        configurable: true
        // 设置当前属性可以被 for in 枚举,默认不可枚举
        enumerable: true
    },
    /* 该属性默认不可写、不可枚举、不可配置 */
    nickname: {
        // 属性值
        value: '柔柔'
    }
})
console.log(newObj.age)
newObj.age = 369
console.log(newObj.age)
/*
// 删除 newObj 的 age 属性
delete newObj.age
console.log(newObj.age)
*/
// 遍历 newObj 的属性
for (var item in newObj) {
    console.log(item)
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值