- 原型链:JavaScript 中的每个对象都从原型继承属性和方法。
function Person() {
}
Person.prototype.name = 'John';
var person1 = new Person();
console.log(person1.name); // 输出 'John'
var person2 = new Person();
person2.name = 'Alice';
console.log(person2.name); // 输出 'Alice',改变了实例属性后,不再访问原型链上的name属性
- 改变this指向:可以使用call(), apply()或bind()方法改变函数内的this指向。
function greet() {
console.log('Hello, ' + this.name);
}
var user = {
name: 'Alice'
};
greet.call(user); // 输出 'Hello, Alice'
setTimeout和setInterval的区别:
- setTimeout: 在指定的毫秒数后执行函数或者表达式一次。
- setInterval: 按照指定的毫秒数不停地重复执行某个函数或表达式。
function hello() {
console.log('Hello');
}
// 使用setTimeout 1秒后执行一次hello函数
setTimeout(hello, 1000);
// 使用setInterval 每2秒执行一次hello函数,可以用clearInterval停止
var intervalId = setInterval(hello, 2000);
clearInterval(intervalId);
JavaScript 入口函数与 jQuery 入口函数:
- JavaScript 入口函数:在DOM文档结构解析完成后执行,可以确保所有DOM元素都可以操作。
document.addEventListener('DOMContentLoaded', function() {
// DOM完全加载和解析完成后执行的代码
});
- jQuery 入口函数:确保DOM完全加载并可以操作,包括所有的图片等媒体文件。
$(document).ready(function() {
// DOM结构加载完成后执行的代码
});
// 或者简写形式
$(function() {
// DOM结构加载完成后执行的代码
});
jQuery 入口函数是等待文档结构解析完成后执行,而JavaScript的原生方法等待所有文件加载完成,包括图片等媒体内容。