Javascript

浏览器上的脚本语言,nodejs也用在非浏览器环境

文章目录

    • [1. 判断变量是否是数组](#1. 判断变量是否是数组)
    • [2. 创建对象](#2. 创建对象)

1. 判断变量是否是数组

javascript 复制代码
let a = {}
Array.isArray(a)

2. 创建对象

javascript 复制代码
// 声明类
function Weapon(damage, range) {
  this.damage_ = damage
  this.range_ = range
}
// 定义成员函数
Weapon.prototype.attach = function(target) {
  if(distance(target) < this.range_) target.health -= this.damage_
}
// 创建对象
let w = new Weapon(100, 50)

js中的类其实就是一个函数,可以叫做构造函数,使用new创建对象时解释器会产生一个空的对象,赋值给this,然后执行构造函数体来初始化一些属性,js对象可以在运行时继续添加新的属性/方法,构造函数结束后解释器会将这个对象返回。Weapon有一个prototype属性,作为Weapon的代理,可以在上面定义方法/属性,通过对象w调用方法attach时,先在对象上找该方法,如果没找到就去代理prototype上面找。

javascript的作者一开始创建js时借鉴了 原型范式 编程语言 Self 的思想。我们平时见到的面向对象的编程语言如Java,是通过类来实现面向对象的,属性存储在对象中,方法存储在类中,使用对象来调用方法时需要先根据对象中的一个引用找到对应的类,再找到对应的方法才能执行,这种方式的方法调用是间接地。而 Self 则不是基于类来实现面向对象的,他把属性和方法都存储在对象中,对象创建是通过clone来实现的,如有一个内置的类obj,通过 obj.clone() 来创建一个新的对象,可以给对象设置任意多个属性和方法,对象的函数调用是直接的。

Self 语言的缺点是没有明确的类型,没有具体声明的属性和方法,这样的代码不容易理解。优点是这样的语言很容易实现,据说js的作者只用了十几天就创造出了js。

相关推荐
尾善爱看海4 小时前
Vue 面试收官篇:SSR、性能优化落地、30 道高频面试题精讲(附标准答案)
前端·javascript·vue.js·面试·vue
李明卫杭州8 小时前
React 复合事件系统对比解析
前端·javascript·react.js
LEE10 小时前
前端转型全栈 01:数据建模,前端最大的盲区
前端·javascript·后端
雪芽蓝域zzs10 小时前
第四十七节:驾驶舱大屏 ECharts 图表集成
前端·javascript·vue.js
梦醒沉醉11 小时前
7、表达日期和时间(前朝遗老Date)
javascript
雪芽蓝域zzs11 小时前
第四十九节:TagsView 右键菜单(带三角箭头)给每个 tag 增加**鼠标右键菜单**(右键标签弹出:关闭、关闭其他、关闭全部)
前端·javascript·vue.js
এ慕ོ冬℘゜12 小时前
从零开发移动端医院挂号页面:适配、交互与前端实现详解
前端·javascript
宁渡AI大模型12 小时前
AI 全栈面试新趋势:Vibe Coding、前端、Java 后端高频面试题深度解析|河南宁渡科技有限公司编程教程
java·javascript·人工智能·python·ai大模型
东风微鸣12 小时前
AI依赖更新别裸奔🚨
javascript
研☆香13 小时前
echarts图表的使用方法
javascript