以上函数不属于任何对象。但是在 JavaScript 中它始终是默认的全局对象。
在 HTML 中默认的全局对象是 HTML 页面本身,所以函数是属于 HTML 页面。
在浏览器中的页面对象是浏览器窗口(window 对象)。以上函数会自动变为 window 对象的函数。
myFunction() 和 window.myFunction() 是一样的:
在 JavaScript 中你可以将函数定义为对象的方法。
以下实例创建了一个对象 ( myObject ), 对象有两个属性 ( firstName 和 lastName ), 及一个方法 ( fullName ):
fullName 方法是一个函数。函数属于对象。 myObject 是函数的所有者。
this 对象,拥有 JavaScript 代码。实例中 this 的值为 myObject 对象。
测试以下!修改 fullName 方法并返回 this 值:
在 JavaScript 中, 函数是对象。JavaScript 函数有它的属性和方法。
call() 和 apply() 是预定义的函数方法。 两个方法可用于调用函数,两个方法的第一个参数必须是对象本身。
在 JavaScript 非严格模式(non-strict mode)下, 如果第一个参数的值是 null 或 undefined, 它将使用全局对象替代。
ha oh
116***[email protected]
作为函数方法调用函数时,此函数执行了相当于 java 中静态函数的功能。
<script> var myObject, myArray; myObject={ name: "hahaha ", hsk: "en" function myFunction(a, b) { alert(this); return this.name +this.hsk; myArray = [10, 2] myObject = myFunction.apply(myObject, myArray); document.getElementById("demo").innerHTML = myObject; </script>尝试一下 »
可以用的频率较高的函数作这样的设置,为对象执行相关操作。
ha oh
116***[email protected]
俊俊吃饭饭
103***[email protected]
在 JavaScript 严格模式(strict mode)下, 在调用函数时第一个参数会成为 this 的值, 即使该参数不是一个对象。
var value = '俊俊吃饭饭' var obj = { fun: function () { console.log(this) obj.fun.call(value) //这里的this不是window,也不是obj,这里的this就是value的值:"俊俊吃饭饭"
在 JavaScript 非严格模式(non-strict mode)下, 如果第一个参数的值是 null 或 undefined, 它将使用全局对象替代。
var value = '俊俊吃饭饭' var obj = { fun: function () { console.log(this) obj.fun.call(null) //window obj.fun.call(undefined) //window
爱吃鱼喜欢挑刺
253***[email protected]