console
var obj = {
name: '张飞'
}
function Person(name) {
this.name = name
}
Person.prototype = {
constructor: Person,
getName: function () {
console.log(this.name)
}
}
var person = new Person('jack')
person.getName.call(obj)
person.getName.apply(obj)
var funs = person.getName.bind(obj)
funs()
console.log(Math.max.call(null, 1, 2))
console.log(Math.max.apply(null, [1, 2, 7]))
var arr1 = [1, 2, 3]
var arr2 = [4, 5, 6]
Array.prototype.push.apply(arr1, arr2)
console.log(arr1)
function args() {
console.log([...arguments])
console.log(Array.prototype.slice.call(arguments))
}
args(1, 2, 3, 4)
function map(arr, callback) {
const result = []
if (!Array.isArray(arr) || !arr.length || typeof callback !== 'function') {
return []
}
for (var i = 0; i < arr.length; i++) {
result.push(callback(arr[i], i, arr))
}
return result
}
console.log(map([1, 2, 3], (item) => {
return item * 2
}))
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=, initial-scale=">
<meta http-equiv="X-UA-Compatible" content="">
<title>call-apply-bind</title>
</head>
<body>
<div class="name"></div>
<div class="name"></div>
<div class="name"></div>
</body>
</html>