this & arguments
function f(){
console.log(this)
console.log(arguments)
}
f.call() // window
f.call({name:'frank'}) // {name: 'frank'}, []
f.call({name:'frank'},1) // {name: 'frank'}, [1]
f.call({name:'frank'},1,2) // {name: 'frank'}, [1,2]
ll은 첫 번째 파라미터를 제외하고 뒤에 있는 파라미터는arguments에 속합니다. 만약 전참하지 않으면arguments는 빈 그룹입니다.arguments는 위조수조이다.
만약 당신이 콜로 함수를 호출하지 않는다면, 직접 f () 를 사용하십시오.예를 들어 f(1)이면 이 1은arguments에 넣는다.이때의this는 여전히 window이다. 비록 너는 하나의 매개 변수 1만 전달했지만.그러니까 써야 돼.f()는 초보자에게 우호적이지 않기 때문에 f()는 하지 마세요.call()은 오히려 생각이 더 뚜렷하다.
함수마다 리턴이 있습니다. 리턴을 쓰지 않으면 리턴 undefined를 쓴 것과 같습니다.
var person = {
name: 'frank',
sayHi: function(person){
console.log('Hi, I am' + person.name)
},
sayBye: function(person){
console.log('Bye, I am' + person.name)
},
say: function(person, word){
console.log(word + ', I am' + person.name)
}
}
person.sayHi(person)
person.sayBye(person)
person.say(person, 'How are you')
//
person.sayHi()
person.sayBye()
person.say('How are you')
//
var person = {
name: 'frank',
sayHi: function(){
console.log('Hi, I am' + this.name)
},
sayBye: function(){
console.log('Bye, I am' + this.name)
},
say: function(word){
console.log(word + ', I am' + this.name)
}
}
//
person.sayHi.call(person)
person.sayBye.call(person)
person.say.call(person, 'How are you')
// :this call
// this , ,
person.sayHi.call({name:'haha'}) // sayHi this person
// this
//
var fn = person.sayHi
person.sayHi() // this === person
fn() // this === window
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.