我学习js一段时间之后,发现js的预置函数有以下几种。
想请问各位老师,这几类函数业内对它们有归类么?或者有惯用说法么?
1,如下中.length 这样的连括号都没有的函数,有固定说法表示么?
"好好学习".length
2、如以下这种函数,有括号但又不像.length函数前面有对象的。
String(null)
alert('ok')
3、这种函数前即有对象,也有括号的属于哪类函数?
"好好学习".charAt(1)
———————————————————————————————————————
学生学js时间不长,理解浅薄,请各位老师指点
谢谢老司机,老司机永远一路顺风。
3Q
———————————————————————————————————————
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
length应该是属性,而非函数吧,你这样其实就是访问字符串的内置属性length在浏览器下,直接访问的函数,当属于window的内置方法了,这么理解,这里说内置不一定对,如果是你自定义的暴露在全局下的,也属于window的方法
"好好学习"双引号括起来,其实表示它就是一个字符串实例了,则可以调用String.prototype.charAt一般来说,函数都是有括号调用的,这是语法吧。
按你这么举例的话,其实函数就分两类了,一类单身狗(没对象)/手动滑稽/,一类为对象方法;
感觉其实也没啥好区分的,无非就是有对象的时候,有对象方法可以用,没对象的时候,自己定义方法来用。
@夜深未眠ok
首先,没人是你老师,你自己是自己的老师.
其次,进入正题:
这个是什么函数?这个不是函数,是属性.
并且在这里我要提醒一点:
你会发现,赋值之后,他的属性没有变化.这是为什么呢?
因为在浏览器的实现过程中,实际上有一个叫做"包装类"的中间过渡变量.
包装类的类型一般是function,它是可以有属性值的。
包装类也好,alert也好,它们又都是window的属性.
只是浏览器中代码默认的运行环境就是window,所以浏览器默认可以省略window不写。
至于第三种也是一样,它仍然是属于包装类的属性。
你也许会问,但是你说的和我测试的不一样啊:
这个明明是字符串类型啊?
好的,我就来解释一下:
至于这些和函数有几类有什么关系,抱歉我也不是很明白,我觉得你应该是不太了解javascript的值类型,但是我记得又不太清楚了。不过如果你真的对于这个问题有很大的兴趣,我建议你去看一下《javascript权威指南》。
我记得里面有相关知识的内容,但不巧手头没带书。
8888888888
第一种:length 属于类的成员变量,直接使用
第二种:alert 是 window 对象的成员函数,这是一种默认的简写。写全的话是:
window.alert("hello");第三种:成员函数调用。
我也刚学习JS,如果答得不对,还请指正。
第一个是对象的属性,第二个是也能算是函数,叫构造函数,第三个是方法。
三者的关系:对象的属性的值是一个函数,就把它(属性)称为对象的方法。
很喜欢你这种问问题的态度。不像有些人问问题都不知道问得啥
1.属性
对于你的例子"好好学习".length
这个就叫取对象的属性,至于'好好学习'这个字符串怎么会有属性的,可以按照@jack_king和@Dont说的。
2.函数
function fun1(){}这种叫函数 或者 fun2 = function(){}。
直接调用fun1(),fun2(),
其实是window.fun1()和window.fun2(),
自动添加到了window上(具体可以参考3)
3.方法
这种 属性的值为函数的话,就叫做对象的方法。
第一次回答问题,可能有些乱。